ZetCode

VBScript CreateNode 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 CreateNode 方法是 Microsoft XML DOM 实现的一部分。它为 XML 文档创建一个指定类型的节点。此方法对于以编程方式构建或修改 XML 结构至关重要。它提供了 XML 文档操作的灵活性。

CreateNode 允许创建各种节点类型,包括元素、属性和文本节点。它通常在 XML 处理脚本中使用。本教程通过实际示例介绍 CreateNode,以演示其在不同场景下的用法。

CreateNode 方法概述

CreateNode 方法接受三个参数:节点类型、节点名称和命名空间 URI。它返回一个可以插入 XML 文档的新节点对象。该方法可通过 VBScript 中的 MSXML DOMDocument 对象访问。

主要功能包括支持所有标准的 XML 节点类型和命名空间意识。它不会自动将节点添加到文档树。CreateNode 是动态 XML 生成的基础。理解此方法有助于创建健壮的 XML 处理脚本。

创建简单的元素节点

此示例演示了如何使用 CreateNode 创建一个基本的元素节点。它展示了如何创建节点并将其附加到文档。该示例创建一个作为根子节点的“book”元素。

simple_element.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<library></library>"

Set root = xmlDoc.documentElement
Set newNode = xmlDoc.createNode(1, "book", "")
root.appendChild newNode

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

脚本创建一个具有根“library”元素的 XML 文档。然后创建一个“book”元素节点(类型 1)并将其附加。输出显示带有新节点的完整 XML。这演示了基本的节点创建和插入。

创建文本节点

此示例展示了如何创建文本节点并将其添加到元素中。文本节点是向 XML 元素添加内容的基础。该示例创建一个带有文本内容的 title 元素。

text_node.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<book></book>"

Set book = xmlDoc.documentElement
Set titleNode = xmlDoc.createNode(1, "title", "")
Set textNode = xmlDoc.createNode(3, "", "")
textNode.text = "VBScript Programming"

titleNode.appendChild textNode
book.appendChild titleNode

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

脚本创建一个没有名称的文本节点(类型 3)。它设置节点的文本内容并将其附加到 title 元素。然后将 title 元素添加到 book 元素。这显示了分层节点构造。

创建属性节点

此示例演示了如何为元素创建属性节点。属性提供元素的其他信息。该示例向 book 元素添加了一个“id”属性。

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

Set book = xmlDoc.selectSingleNode("//book")
Set attrNode = xmlDoc.createNode(2, "id", "")
attrNode.text = "B001"

book.attributes.setNamedItem attrNode

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

脚本创建一个名为“id”的属性节点(类型 2)。它设置属性值并将其添加到 book 元素。属性的添加方式与其他节点不同。这显示了属性的专用节点处理。

创建带命名空间的节点

此示例展示了如何创建带命名空间的节点。命名空间有助于避免元素名称冲突。该示例在自定义命名空间中创建一个元素。

namespaced_node.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<lib:library xmlns:lib='http://example.com/library'/>"

Set root = xmlDoc.documentElement
Set newNode = xmlDoc.createNode(1, "lib:book", "http://example.com/library")
root.appendChild newNode

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

脚本创建一个带命名空间的“book”元素。命名空间 URI 必须与文档的声明匹配。输出显示正确的命名空间前缀用法。这演示了 VBScript 中的高级 XML 功能。

创建复杂的 XML 结构

此示例结合了多种节点类型来构建复杂的结构。它展示了如何使用 CreateNode 来生成完整的 XML 文档。该示例创建了一个图书目录条目。

complex_structure.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.async = False
xmlDoc.loadXML "<catalog></catalog>"

Set catalog = xmlDoc.documentElement
Set book = xmlDoc.createNode(1, "book", "")
Set title = xmlDoc.createNode(1, "title", "")
Set titleText = xmlDoc.createNode(3, "", "")
titleText.text = "Advanced VBScript"

title.appendChild titleText
book.appendChild title
catalog.appendChild book

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

脚本构建了一个包含图书条目的目录,该图书条目包含标题。它演示了嵌套节点创建和正确的文档结构。组合了多种节点类型。这展示了实际的 XML 生成技术。

来源

MSXML DOMDocument 文档

在本文中,我们探讨了 VBScript 中的 CreateNode 方法,涵盖了其用法和实际应用。从简单的元素到复杂的带命名空间的结构,这些示例都展示了 XML 操作。有了这些知识,您就可以通过动态节点创建来增强您的 XML 处理脚本。

作者

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

列出所有 VBScript 教程