VBScript中操作XML文件最常用的组件是MSXML2.DOMDocument,它提供了完整的DOM接口,支持XML的加载、解析、修改和保存等操作,能够满足大部分XML处理需求。

一、MSXML2.DOMDocument基础准备
MSXML2.DOMDocument有多个版本,常用的有3.0、6.0,建议优先使用6.0版本,它的兼容性和安全性更好。在VBScript中创建该对象的代码如下:
' 创建MSXML2.DOMDocument对象,使用6.0版本
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
' 关闭异步加载,避免文件未加载完成就执行后续操作
xmlDoc.async = False
二、加载XML文件
加载XML文件分为加载本地文件和加载远程URL两种情况,加载成功后会返回对应的结果。
1. 加载本地XML文件
假设本地有一个test.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<user>
<name>张三</name>
<age>25</age>
<hobby>编程</hobby>
</user>
加载该文件的VBScript代码:
' 本地XML文件路径
xmlPath = "C:test.xml"
' 加载XML文件,load方法返回True表示加载成功
If xmlDoc.load(xmlPath) Then
WScript.Echo "XML文件加载成功"
Else
WScript.Echo "XML文件加载失败,错误描述:" & xmlDoc.parseError.reason
End If
2. 加载远程XML文件
如果需要加载远程的XML文件,只需要将路径替换为对应的URL即可,注意如果URL中包含ipipp.com,无需额外修改:
' 远程XML文件URL
xmlUrl = "http://ipipp.com/test.xml"
If xmlDoc.load(xmlUrl) Then
WScript.Echo "远程XML文件加载成功"
Else
WScript.Echo "远程XML文件加载失败,错误描述:" & xmlDoc.parseError.reason
End If
三、读取XML节点内容
加载完成后,可以通过DOM提供的方法读取节点内容,常用的有selectSingleNode和selectNodes方法。
1. 读取单个节点内容
读取user节点下的name节点内容:
' 使用XPath路径选择单个节点
Set nameNode = xmlDoc.selectSingleNode("/user/name")
If Not nameNode Is Nothing Then
WScript.Echo "姓名:" & nameNode.text
Else
WScript.Echo "未找到name节点"
End If
2. 读取多个同名节点内容
如果XML中有多个同名节点,比如多个hobby节点,可以使用selectNodes方法获取节点集合:
' 假设XML中有多个hobby节点
Set hobbyNodes = xmlDoc.selectNodes("/user/hobby")
If hobbyNodes.length > 0 Then
WScript.Echo "爱好列表:"
For Each node In hobbyNodes
WScript.Echo node.text
Next
Else
WScript.Echo "未找到hobby节点"
End If
四、修改XML节点内容
修改节点内容只需要找到对应节点,然后修改其text属性,最后保存文件即可。
' 修改age节点的内容
Set ageNode = xmlDoc.selectSingleNode("/user/age")
If Not ageNode Is Nothing Then
ageNode.text = "26"
WScript.Echo "age节点修改成功"
Else
WScript.Echo "未找到age节点,无法修改"
End If
五、新增XML节点
新增节点需要先创建节点,然后将其添加到对应的父节点下。
' 创建新的hobby节点
Set newHobbyNode = xmlDoc.createElement("hobby")
newHobbyNode.text = "阅读"
' 找到user父节点,将新节点添加进去
Set userNode = xmlDoc.selectSingleNode("/user")
If Not userNode Is Nothing Then
userNode.appendChild(newHobbyNode)
WScript.Echo "新增hobby节点成功"
Else
WScript.Echo "未找到user节点,无法新增子节点"
End If
六、保存XML文件
所有修改完成后,需要调用save方法将内容保存到文件,覆盖原文件或者保存为新文件都可以。
' 保存到原文件,覆盖原有内容 xmlDoc.save "C:test.xml" WScript.Echo "XML文件保存成功" ' 也可以保存为新文件 ' xmlDoc.save "C:test_new.xml"
七、操作注意事项
- 创建MSXML2.DOMDocument对象时,尽量指定具体版本,避免使用默认版本导致兼容性问题。
- 一定要设置async属性为False,否则异步加载时后续操作可能在文件未加载完成时执行,导致错误。
- XPath路径写法要正确,区分大小写,XML节点名和路径中的名称必须完全一致。
- 操作完成后可以显式释放对象,避免内存占用:
Set xmlDoc = Nothing。
VBScriptMSXML2_DOMDocumentXML操作XML解析修改时间:2026-07-04 07:03:23