VBScript MSXML2.DOMDocument 对象
最后修改于 2025 年 4 月 9 日
VBScript 中的 MSXML2.DOMDocument
对象提供了 XML 文档的解析和操作功能。它是 Microsoft XML Core Services (MSXML) 的一部分。该对象能够以编程方式加载、创建和修改 XML 文档。
MSXML2.DOMDocument
支持 XPath 查询和 XSLT 转换。它广泛用于配置文件、数据交换和 Web 服务。本教程通过实际示例介绍了 DOMDocument 的用法。
DOMDocument 对象概述
MSXML2.DOMDocument
对象表示内存中的 XML 文档。它提供了加载、保存和导航 XML 数据的方法。该对象实现了 W3C DOM (Document Object Model) Level 1 和 Level 2 规范。
关键属性包括 async
、documentElement
和 parseError
。重要方法有 load
、save
和 selectNodes
。理解该对象有助于创建健壮的 XML 处理脚本。
加载和解析 XML 文件
本示例演示如何从磁盘加载 XML 文件并解析其内容。它展示了基本的错误处理和文档导航。脚本在处理之前会检查加载错误。
Set xmlDoc = CreateObject("MSXML2.DOMDocument") xmlDoc.async = False xmlDoc.validateOnParse = True If xmlDoc.Load("C:\data\books.xml") Then Set root = xmlDoc.documentElement WScript.Echo "Root element: " & root.nodeName Else WScript.Echo "Error loading XML: " & xmlDoc.parseError.reason End If Set xmlDoc = Nothing
脚本创建一个 DOMDocument 对象,并将 async
设置为 false 以进行同步加载。它尝试加载“books.xml”并检查结果。如果成功,则显示根元素名称。否则,显示错误。
创建新的 XML 文档
本示例展示了如何从头开始创建新的 XML 文档。它演示了如何添加元素、属性和文本节点。生成的文档被保存到磁盘。
Set xmlDoc = CreateObject("MSXML2.DOMDocument") Set root = xmlDoc.createElement("Catalog") xmlDoc.appendChild root Set book = xmlDoc.createElement("Book") book.setAttribute "id", "101" root.appendChild book Set title = xmlDoc.createElement("Title") title.Text = "VBScript Programming" book.appendChild title xmlDoc.Save "C:\data\new_catalog.xml" Set xmlDoc = Nothing
脚本创建一个带有根元素“Catalog”的新 XML 文档。它添加一个带有 id 属性的“Book”元素。然后将带有文本内容的“Title”元素添加到该书中。最后,将文档保存到“new_catalog.xml”。
使用 XPath 查询 XML
本示例演示如何使用 XPath 查询 XML 文档中的特定节点。它展示了如何选择符合条件的节点并遍历结果。XPath 提供了强大的查询功能。
Set xmlDoc = CreateObject("MSXML2.DOMDocument") xmlDoc.async = False xmlDoc.Load "C:\data\books.xml" Set books = xmlDoc.selectNodes("//Book[@category='Programming']") For Each book In books Set title = book.selectSingleNode("Title") WScript.Echo title.Text Next Set xmlDoc = Nothing
脚本加载一个 XML 文件,并选择所有类别为“Programming”的 Book 元素。它遍历匹配的节点并显示它们的标题。XPath 表达式为 XML 数据提取提供了灵活的查询选项。
修改 XML 文档
本示例展示了如何修改现有的 XML 内容。它演示了更新元素值和添加新节点。然后将修改后的文档保存回磁盘。
Set xmlDoc = CreateObject("MSXML2.DOMDocument") xmlDoc.async = False xmlDoc.Load "C:\data\books.xml" Set price = xmlDoc.selectSingleNode("//Book[1]/Price") price.Text = "29.99" Set book = xmlDoc.selectSingleNode("//Book[last()]") Set newBook = book.cloneNode(True) newBook.setAttribute "id", "105" xmlDoc.documentElement.appendChild newBook xmlDoc.Save "C:\data\books_updated.xml" Set xmlDoc = Nothing
脚本加载一个 XML 文件,并更新第一本书的价格。然后它克隆最后一本书,更改其 id,并将其追加到文档中。最后,将修改后的文档保存为新文件名。
使用 XSLT 转换 XML
本示例演示如何使用 XSLT 将 XML 转换为 HTML。它展示了如何加载 XML 和 XSLT 文件并执行转换。结果被保存为 HTML 文件。
Set xmlDoc = CreateObject("MSXML2.DOMDocument") Set xslDoc = CreateObject("MSXML2.DOMDocument") xmlDoc.async = False xslDoc.async = False xmlDoc.Load "C:\data\books.xml" xslDoc.Load "C:\data\books.xsl" Set fso = CreateObject("Scripting.FileSystemObject") Set outFile = fso.CreateTextFile("C:\data\books.html", True) outFile.Write xmlDoc.transformNode(xslDoc) outFile.Close Set xmlDoc = Nothing Set xslDoc = Nothing Set fso = Nothing
脚本加载 XML 和 XSLT 文档。它使用 transformNode
执行转换。生成的 HTML 被保存到文件中。XSLT 为表示提供了强大的 XML 转换功能。
来源
在本文中,我们探讨了 VBScript 中的 MSXML2.DOMDocument
对象,涵盖了其用法和实际应用。从基本的加载到高级转换,这些示例展示了 XML 处理。通过这些知识,您可以为脚本添加强大的 XML 处理功能。