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 支持)

使用 selectSingleNodeselectNodes 配合 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分页