VBScript childNodes 属性
最后修改于 2025 年 4 月 9 日
VBScript 中的 childNodes 属性是 XML DOM 实现的一部分。它返回指定节点的所有子节点的集合。此属性对于导航和操作 XML 文档至关重要。它提供了对层次结构中元素节点和文本节点的访问。
childNodes 是只读的,并返回一个 NodeList 对象。该集合包括所有直接子节点,无论节点类型如何。本教程通过实际示例介绍 childNodes,以演示 VBScript 中的 XML 处理。
childNodes 属性概述
childNodes 属性属于 XML DOM Node 接口。它提供对节点所有直接子节点的访问。返回的 NodeList 是实时的,会随着文档的更改而自动更新。节点从 0 开始索引。
重要方面包括处理空白文本节点和元素节点。该属性适用于已加载的 XML 文档和动态创建的节点。理解 childNodes 是 XML 处理的基础。
基本 XML 文档遍历
此示例演示了使用 childNodes 进行 XML 文档的基本遍历。它展示了如何访问和显示子节点。脚本加载一个简单的 XML 字符串并检查其结构。
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<root><item>First</item><item>Second</item></root>"
Set root = xmlDoc.documentElement
For Each child In root.childNodes
WScript.Echo child.nodeName & ": " & child.text
Next
Set xmlDoc = Nothing
脚本创建一个包含两个 item 元素的 XML 文档。它访问根元素的 childNodes 集合。显示每个子节点的名称和文本内容。这展示了基本的 XML 导航。
计算子节点数
此示例演示了使用 childNodes 长度属性。它展示了如何确定节点包含的子节点数。计数包括所有节点类型,而不仅仅是元素。
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML ">books>>book/>>book/>>book/>>/books>"
Set books = xmlDoc.documentElement
WScript.Echo "Number of book elements: " & books.childNodes.length
Set xmlDoc = Nothing
脚本加载一个包含三个 book 元素的 XML 文档。它访问 books 元素的 childNodes.length 属性。输出显示直接子节点的计数。这对于验证很有用。
访问特定子节点
此示例展示了如何使用 childNodes 集合中的索引访问特定节点。它演示了零基索引和直接节点访问。脚本检索并显示一个特定的子节点。
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<colors><color>Red</color><color>Green</color><color>Blue</color></colors>"
Set colors = xmlDoc.documentElement
Set secondColor = colors.childNodes(1)
WScript.Echo "Second color: " & secondColor.text
Set xmlDoc = Nothing
脚本加载一个包含三个 color 元素的 XML 文档。它使用索引 1(零基)访问第二个 color。显示了特定节点的文本内容。这展示了定向节点访问。
处理不同的节点类型
此示例演示了处理 childNodes 集合中不同节点类型的方法。它展示了如何识别和处理元素节点与文本节点。脚本检查每个子节点的 nodeType 属性。根据节点是元素还是文本,会进行不同的处理。
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<data>Text content<item>Value</item></data>"
Set dataNode = xmlDoc.documentElement
For Each child In dataNode.childNodes
Select Case child.nodeType
Case 1: WScript.Echo "Element: " & child.nodeName
Case 3: WScript.Echo "Text: " & child.nodeValue
End Select
Next
Set xmlDoc = Nothing
脚本加载包含文本节点和元素节点的 XML。它检查每个子节点的 nodeType 属性。根据节点是元素还是文本,会进行不同的处理。这展示了类型感知的处理。
修改子节点
此示例演示了修改 childNodes 集合中的节点。它展示了如何更改节点内容和结构。脚本更新特定子节点的值。
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<settings><option>Default</option></settings>"
Set settings = xmlDoc.documentElement
settings.childNodes(0).text = "Custom"
WScript.Echo "Modified option: " & settings.childNodes(0).text
Set xmlDoc = Nothing
脚本加载一个包含一个 option 元素的 XML 文档。它访问第一个子节点并修改其文本内容。然后通过显示更新后的值来验证更改。这展示了动态 XML 修改。
来源
在本文中,我们探讨了 VBScript 中的 childNodes 属性,涵盖了它的用法和实际应用。从基本遍历到节点修改,这些示例演示了 XML 处理技术。通过这些知识,您可以有效地在 VBScript 中处理 XML 文档。