ZetCode

VBScript LoadXML 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 LoadXML 方法是 Microsoft XML DOM 实现的一部分。它从包含 XML 标记的字符串加载 XML 文档。此方法解析 XML 字符串并在内存中构建 DOM 树。它常用于 VBScript 应用程序中的 XML 处理。

LoadXML 提供了一种直接从字符串处理 XML 数据的方法。当 XML 内容来自文件以外的来源时,它非常有用。本教程通过实际示例涵盖 LoadXML 以演示其用法。理解此方法对于 VBScript 中的 XML 处理至关重要。

LoadXML 方法概述

LoadXML 方法属于 DOMDocument 对象。它接受一个参数:一个包含格式正确的 XML 的字符串。如果加载成功,该方法返回 True,否则返回 False。它会用新的 XML 替换任何现有的文档内容。

主要功能包括内存中 XML 解析和 DOM 树构建。该方法验证 XML 语法,但不验证 XML 模式。LoadXML 通常与其他 DOM 方法配对用于 XML 操作。它在 MSXML 2.0 及更高版本中可用。

基本 XML 加载

此示例演示了 LoadXML 解析 XML 字符串的最简单用法。它展示了如何创建 DOMDocument 并加载 XML 内容。然后,示例验证加载是否成功。

basic_loadxml.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlString = "<root><item>Test</item></root>"
success = xmlDoc.LoadXML(xmlString)

If success Then
    WScript.Echo "XML loaded successfully"
    WScript.Echo xmlDoc.xml
Else
    WScript.Echo "Error loading XML"
End If

Set xmlDoc = Nothing

该脚本创建一个 DOMDocument 并调用 LoadXML。XML 字符串“<root><item>Test</item></root>”被解析到 DOM 树中。该方法返回 True,表示成功。然后将 XML 内容回显出来。

处理 XML 错误

此示例演示了在加载格式错误的 XML 时如何处理错误。它演示了在加载失败后检查 parseError 对象。该脚本提供详细的错误信息。

error_handling.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlString = "<root><item>Test</item" ' Missing closing tag
success = xmlDoc.LoadXML(xmlString)

If Not success Then
    Set err = xmlDoc.parseError
    WScript.Echo "Error loading XML:"
    WScript.Echo "Line: " & err.line
    WScript.Echo "Position: " & err.linepos
    WScript.Echo "Reason: " & err.reason
End If

Set xmlDoc = Nothing

该脚本尝试加载无效 XML(缺少闭合标签)。LoadXML 返回 False,表示失败。parseError 对象提供了错误的详细信息。这有助于诊断和修复脚本中的 XML 语法问题。

加载带命名空间的 XML

此示例演示了加载包含命名空间的 XML。它展示了 LoadXML 如何处理命名空间声明。然后,该脚本使用带命名空间前缀的名称来访问元素。

namespace_xml.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlString = "<ns:root xmlns:ns='http://example.com'>" & _
            "<ns:item>Value</ns:item></ns:root>"
success = xmlDoc.LoadXML(xmlString)

If success Then
    Set node = xmlDoc.selectSingleNode("//ns:item")
    WScript.Echo node.text ' Output: Value
End If

Set xmlDoc = Nothing

该脚本加载了带命名空间声明的 XML。LoadXML 正确解析了命名空间信息。然后,该脚本使用带命名空间前缀的 XPath 来访问元素。这表明了 VBScript XML 处理中的正确命名空间处理。

修改已加载的 XML

此示例展示了如何在加载 LoadXML 后修改 XML。它演示了向已解析的 DOM 树添加新元素。然后输出修改后的 XML。

modify_xml.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlString = "<root><item>Original</item></root>"
success = xmlDoc.LoadXML(xmlString)

If success Then
    Set newElem = xmlDoc.createElement("newItem")
    newElem.text = "Added"
    xmlDoc.documentElement.appendChild newElem
    WScript.Echo xmlDoc.xml
End If

Set xmlDoc = Nothing

该脚本加载基本 XML 并添加一个新元素。LoadXML 创建了初始的 DOM 结构。然后,脚本创建并附加了一个新元素。最后,它输出了显示更改的修改后的 XML。

加载带 CDATA 部分的 XML

此示例演示了 LoadXML 处理包含 CDATA 部分的 XML。CDATA 会保留文本内容中的特殊字符。该脚本展示了加载后如何访问 CDATA 内容。

cdata_xml.vbs
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlString = "<root><![CDATA[<This> is & CDATA content]]></root>"
success = xmlDoc.LoadXML(xmlString)

If success Then
    WScript.Echo xmlDoc.documentElement.text
End If

Set xmlDoc = Nothing

该脚本加载了包含 CDATA 部分的 XML。LoadXML 正确解析了 CDATA 内容。然后,该脚本访问文本内容,其中包括特殊字符。这表明了 VBScript XML 处理中的 CDATA 处理。

来源

MSXML DOMDocument 文档

在本文中,我们探讨了 VBScript 中的 LoadXML 方法,涵盖了其用法和实际应用。从基本的 XML 加载到处理命名空间和 CDATA 等复杂情况,这些示例展示了可靠的 XML 处理。有了这些知识,您就可以用强大的 XML 处理功能来增强您的脚本。

作者

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

列出所有 VBScript 教程