VBScript怎么操作XML文件 MSXML2.DOMDocument
发布时间 - 2026-01-22 00:00:00 点击率:次VBScript通过MSXML2.DOMDocument.6.0对象可加载、解析、修改和保存XML;支持文件/字符串加载、XPath查询、节点增删改及保存,但无内置格式化功能。
VBScript 使用 MSXML2.DOMDocument 对象可以方便地加载、解析、修改和保存 XML 文件。这是 Windows 系统中默认支持的 COM 组件,无需额外安装(XP 及以后系统基本都自带 MSXML 3.0 或更高版本,推荐用 MSXML2.DOMDocument.6.0 提高性能与安全性)。
加载 XML 文件或字符串
支持从文件路径或 XML 字符串加载内容:
- 从文件加载:Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.async = False
xmlDoc.load "C:\data.xml" - 从字符串加载:xmlDoc.loadXML "
"- A
- 加载后务必检查是否成功:If xmlDoc.parseError.errorCode 0 Then WScript.Echo "加载失败:" & xmlDoc.parseError.reason
查询节点(XPath 支持)
使用 selectSingleNode 或 selectNodes 配合 XPath 表达式获取元素:
- 查单个节点:Set node = xmlDoc.selectSingleNode("/root/item[@id='1']")
- 查多个节点:Set nodeList = xmlDoc.selectNodes("/root/item")
For i = 0 To nodeList.length - 1
WScript.Echo nodeList(i).text
Next - 注意:XPath 区分大小
写,且属性需用
@attr语法;若文档有命名空间,需先设置xmlDoc.setProperty "SelectionNamespaces", "xmlns:x='http://example.com'"
创建和修改节点
可动态添加、更新或删除节点:
- 创建新元素:Set newItem = xmlDoc.createElement("item")
newItem.setAttribute "id", "2"
newItem.text = "B" - 追加到父节点:xmlDoc.documentElement.appendChild newItem
- 修改已有值:node.text = "Updated" 或 node.setAttribute "status", "done"
- 删除节点:node.parentNode.removeChild node
保存 XML 到文件
调用 save 方法写入磁盘(路径必须存在,否则报错):
- xmlDoc.save "C:\data_new.xml"
- 如需格式化缩进(默认无换行缩进),VBScript 本身不支持自动美化,可手动拼接字符串,或借助 XSLT 转换(较复杂),一般生产环境建议改用 PowerShell 或其他语言处理格式化需求
- 保存前建议验证:If xmlDoc.documentElement Is Nothing Then WScript.Echo "文档为空,无法保存"
# node
# windows
# app
# win
# echo
# if
# for
# 命名空间
# xml
# 字符串
# Length
# 对象
# http
# VBScript
# 加载
# 这是
# 文档
# 多个
# 已有
# 或其他
# 或删除
# 不支持
# 自带
# 报错
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
微信小程序 配置文件详细介绍
详解Huffman编码算法之Java实现
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Laravel如何使用Service Container和依赖注入?(代码示例)
javascript中闭包概念与用法深入理解
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
如何用AWS免费套餐快速搭建高效网站?
JS实现鼠标移上去显示图片或微信二维码
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
如何构建满足综合性能需求的优质建站方案?
JS弹性运动实现方法分析
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Linux系统运维自动化项目教程_Ansible批量管理实战
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
中山网站推广排名,中山信息港登录入口?
详解jQuery中的事件
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
太平洋网站制作公司,网络用语太平洋是什么意思?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何在阿里云部署织梦网站?
详解jQuery中基本的动画方法
如何在万网自助建站中设置域名及备案?
JavaScript如何实现倒计时_时间函数如何精确控制
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
使用spring连接及操作mongodb3.0实例
如何用免费手机建站系统零基础打造专业网站?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Python文件异常处理策略_健壮性说明【指导】
Laravel怎么使用Intervention Image库处理图片上传和缩放
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
制作公司内部网站有哪些,内网如何建网站?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
大学网站设计制作软件有哪些,如何将网站制作成自己app?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何在橙子建站上传落地页?操作指南详解
HTML 中动态设置元素 name 属性的正确语法详解
香港服务器如何优化才能显著提升网站加载速度?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
简单实现jsp分页


