ZetCode

VBScript MSXML2.IXMLDOMNode 对象

最后修改于 2025 年 4 月 9 日

VBScript 中的 MSXML2.IXMLDOMNode 对象代表 XML 文档树中的单个节点。它是 Microsoft XML Core Services (MSXML) 库的一部分。该对象提供了操作 XML 节点的方法和属性。它作为所有其他 XML DOM 节点类型的基接口。

IXMLDOMNode 支持读取、修改、添加和删除 XML 节点。它支持通过 XML 文档结构进行导航。本教程通过实际示例涵盖 IXMLDOMNode 以展示其用法。

IXMLDOMNode 对象概述

IXMLDOMNode 接口是 XML DOM 的基本构建块。它提供了所有节点类型共有的核心功能。属性包括 nodeNamenodeValuechildNodes

关键方法包括 appendChildremoveChildselectNodes。该对象支持 XPath 表达式进行节点选择。理解此接口对于 VBScript 中的 XML 处理至关重要。

访问节点属性

此示例演示了如何访问 XML 节点的常规属性。它展示了如何检索节点名称、值和类型。脚本加载一个简单的 XML 字符串并检查其根节点。

node_properties.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<book><title>VBScript Guide</title></book>"

Set root = xmlDoc.documentElement
WScript.Echo "Node name: " & root.nodeName
WScript.Echo "Node type: " & root.nodeType
WScript.Echo "XML content: " & root.xml

Set xmlDoc = Nothing

脚本创建一个带有 book 元素的 XML 文档。它使用 nodeNamenodeType 访问根节点的属性。xml 属性返回节点的完整 XML 内容。

导航子节点

此示例展示了如何遍历 XML 元素的子节点。它演示了如何访问第一个子节点并遍历所有子节点。脚本会检查每个节点的属性。

child_nodes.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<library><book>Title1</book><book>Title2</book></library>"

Set library = xmlDoc.documentElement
Set firstChild = library.firstChild
WScript.Echo "First child name: " & firstChild.nodeName

For Each child In library.childNodes
    WScript.Echo "Child node value: " & child.text
Next

Set xmlDoc = Nothing

脚本加载一个包含多个 book 元素的 XML 文档。它使用 firstChild 访问第一个子节点。然后它通过 childNodes 集合遍历所有子节点。

修改节点内容

此示例演示了如何修改 XML 节点内容。它展示了如何更改节点的文本值和属性。脚本会更新 XML 文档并输出修改后的内容。

modify_node.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<person><name>John</name><age>30</age></person>"

Set nameNode = xmlDoc.selectSingleNode("//name")
nameNode.text = "Michael"

Set ageNode = xmlDoc.selectSingleNode("//age")
ageNode.text = "35"

WScript.Echo "Modified XML: " & vbCrLf & xmlDoc.xml

Set xmlDoc = Nothing

脚本加载一个包含 person 数据的 XML 文档。它使用 selectSingleNode 来定位特定节点。name 和 age 节点的文本内容都已更新。最后,显示修改后的 XML。

添加和删除节点

此示例展示了如何添加新节点和删除现有节点。它演示了如何创建元素并将它们附加到文档。脚本还显示了节点删除。

add_remove_nodes.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<employees><employee>Alice</employee></employees>"

Set root = xmlDoc.documentElement

' Add new employee
Set newEmp = xmlDoc.createElement("employee")
newEmp.text = "Bob"
root.appendChild newEmp

' Remove first employee
Set firstEmp = root.firstChild
root.removeChild firstEmp

WScript.Echo "Updated XML: " & vbCrLf & xmlDoc.xml

Set xmlDoc = Nothing

脚本从一个包含一个 employee 的 XML 文档开始。它使用 createElement 创建一个新的 employee 节点并将其附加。然后它删除原始的 employee 节点。最终的 XML 显示了修改。

使用 XPath 选择节点

此示例演示了如何使用 XPath 表达式选择节点。它展示了如何根据条件检索特定节点。脚本同时使用了 selectNodesselectSingleNode 方法。

xpath_selection.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<products><product id='1'>Laptop</product><product id='2'>Phone</product></products>"

' Select single node
Set product1 = xmlDoc.selectSingleNode("//product[@id='1']")
WScript.Echo "Product 1: " & product1.text

' Select multiple nodes
Set products = xmlDoc.selectNodes("//product")
For Each prod In products
    WScript.Echo "Product: " & prod.text
Next

Set xmlDoc = Nothing

脚本加载一个包含 product 数据的 XML 文档。它使用 XPath 按 ID 属性选择特定产品。然后它选择所有 product 节点并遍历它们。XPath 提供了强大的节点选择功能。

来源

MSXML2.IXMLDOMNode 文档

在本文中,我们探讨了 VBScript 中的 MSXML2.IXMLDOMNode 对象,涵盖了它的属性和方法。从基本的节点访问到复杂的节点操作,这些示例展示了 XML 处理功能。有了这些知识,您就可以在 VBScript 应用程序中有效地处理 XML 数据。

作者

我的名字是 Jan Bodnar,我是一名充满激情的程序员,拥有多年的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面拥有八年以上的经验。

列出所有 VBScript 教程