ZetCode

VBScript AppendChild 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 AppendChild 方法是 XML DOM (文档对象模型) 的一部分。它将一个新子节点添加为指定父节点的最后一个子节点。此方法对于在 VBScript 中动态构建和修改 XML 文档至关重要。它适用于所有节点类型,包括元素、文本和注释。

AppendChild 通过将节点添加到 DOM 树来修改文档结构。如果成功,该方法将返回被追加的节点。本教程将通过实际示例介绍 AppendChild,以演示其在各种场景中的用法。

AppendChild 方法概述

AppendChild 方法接受一个参数:要追加的节点。它返回被追加的节点对象。该方法可用于任何可以拥有子节点的 XML DOM 节点。它通常在 VBScript 中与 MSXML2.DOMDocument 对象一起使用。

主要功能包括自动修改文档结构和支持所有节点类型。如果节点类型与父节点不兼容,该方法将引发错误。理解此方法对于 VBScript 中的 XML 操作至关重要。

基本 XML 文档创建

本示例演示了如何使用 AppendChild 从头开始创建简单的 XML 文档。我们将构建一个根元素,并添加一个带有文本内容的子元素。这展示了该方法的基本用法。

basic_appendchild.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set root = xmlDoc.createElement("Root")
xmlDoc.appendChild root

Set child = xmlDoc.createElement("Message")
child.text = "Hello World"
root.appendChild child

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

该脚本创建一个 XML 文档对象和一个根元素。根节点被追加到文档中。然后创建一个带有文本的子元素并将其追加到根节点。最终的 XML 结构被输出以演示结果。

添加多个子元素

本示例展示了如何使用 AppendChild 向父节点添加多个子元素。我们将创建一个简单的库存列表,其中包含多个项目。每个项目按顺序添加以演示多次追加。

multiple_children.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set inventory = xmlDoc.createElement("Inventory")
xmlDoc.appendChild inventory

items = Array("Book", "Pen", "Notebook", "Pencil")
For Each item in items
    Set elem = xmlDoc.createElement("Item")
    elem.text = item
    inventory.appendChild elem
Next

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

该脚本创建一个 Inventory 根元素,并通过循环添加多个 Item 元素。每次迭代都会创建一个新元素,设置其文本,然后追加它。当从数组或集合构建 XML 时,这种模式很常见。

追加现有节点

AppendChild 也可以在文档内移动现有节点。本示例演示了将一个节点从一个父节点移动到另一个父节点。原始节点会自动从其先前的位置中删除。

move_node.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.loadXML "<Library><Books><Book/></Books><Magazines/></Library>"

Set book = xmlDoc.selectSingleNode("//Book")
Set magazines = xmlDoc.selectSingleNode("//Magazines")
magazines.appendChild book

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

该脚本加载具有预定义结构的 XML 文档。它选择一个 Book 节点并将其从 Books 移动到 Magazines。输出显示了 Book 现在位于 Magazines 下的修改后的结构。

创建嵌套结构

本示例演示了如何使用多个 AppendChild 调用构建复杂的嵌套 XML 结构。我们将创建一个包含员工的公司部门结构。每个嵌套级别都需要单独追加操作。

nested_structure.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set company = xmlDoc.createElement("Company")
xmlDoc.appendChild company

Set dept = xmlDoc.createElement("Department")
dept.setAttribute "name", "IT"
company.appendChild dept

Set employee = xmlDoc.createElement("Employee")
employee.text = "John Doe"
dept.appendChild employee

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

该脚本构建一个 Company 元素,其中包含一个 Department,该 Department 又包含一个 Employee。每个级别都使用 AppendChild 添加。属性在需要时将在追加之前设置。结果是一个正确嵌套的 XML 结构。

追加不同节点类型

AppendChild 可用于除元素之外的各种节点类型。本示例展示了将注释节点和文本节点追加到元素。不同节点类型需要不同的创建方法。

node_types.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set root = xmlDoc.createElement("Root")
xmlDoc.appendChild root

Set comment = xmlDoc.createComment("Sample XML Document")
root.appendChild comment

Set textNode = xmlDoc.createTextNode("Sample text content")
root.appendChild textNode

WScript.Echo xmlDoc.xml
Set xmlDoc = Nothing

该脚本创建一个根元素,并向其追加注释节点和文本节点。请注意用于创建每种节点类型(createCommentcreateTextNode)的不同方法。输出显示了结果 XML 中混合的内容。

来源

MSXML DOMDocument 文档

在本文中,我们探讨了 VBScript 中的 AppendChild 方法,涵盖了其用法和实际应用。从简单的 XML 创建到复杂的节点操作,这些示例展示了强大的 XML 文档构建功能。通过这些知识,您可以增强 XML 处理脚本的动态内容生成能力。

作者

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

列出所有 VBScript 教程