VBScript怎么操作XML文件 MSXML2.DOMDocument

来源:个人站长作者:会飞的猪头衔:草根站长
导读:本期聚焦于小伙伴创作的《VBScript怎么操作XML文件 MSXML2.DOMDocument》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《VBScript怎么操作XML文件 MSXML2.DOMDocument》有用,将其分享出去将是对创作者最好的鼓励。

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

VBScript怎么操作XML文件 MSXML2.DOMDocument

一、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

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。