首页 > 解决方案 > 在 VBScript 中解析 XML 时访问一条信息时出现问题

问题描述

我的代码将遍历我的 XML 文件并提取出效果很好的 TO、FROM 和 SUBJECT。我遇到的问题是我无法弄清楚如何从 ELEMENT 节点中提取 ID 属性。我需要它来识别包含电子邮件内容的文件名。我尝试过的任何方法似乎都不起作用。理想情况下,该 ID 将添加到strQuery.

这是我正在使用的 XML 示例:

XML 数据的屏幕截图。

这是我的代码:

Set xmlDoc = CreateObject( "Microsoft.XMLDOM" )
xmlDoc.Async = "False"
xmlDoc.Load("C:\Program Files (x86)\Mail Enable\Postoffices\ACS\MAILROOT\name\Inbox\_index.xml")

strQuery = "//ELEMENT/ (FROM | TO | SUBJECT)"
'strQuery = "ELEMENT"

Set colNodes = xmlDoc.SelectNodes(strQuery)
For Each objNode In colNodes
    WScript.Echo objNode.NodeName & ": " & objNode.Text
Next

标签: xmlvbscript

解决方案


获取ID父节点的属性:

WScript.Echo objNode.ParentNode.GetAttribute("ID")

或者,选择<ELEMENT>节点,获取其ID属性,然后选择所需的子节点:

For Each objNode In xmlDoc.SelectNodes("//ELEMENT")
    WScript.Echo objNode.GetAttribute("ID")
    WScript.Echo objNode.SelectSingleNode("./FROM").Text
    WScript.Echo objNode.SelectSingleNode("./TO").Text
    ...
Next

作为旁注,Microsoft.XMLDOM已弃用。改为使用Msxml2.DOMDocument.6.0


推荐阅读