xml - 在 VBScript 中解析 XML 时访问一条信息时出现问题
问题描述
我的代码将遍历我的 XML 文件并提取出效果很好的 TO、FROM 和 SUBJECT。我遇到的问题是我无法弄清楚如何从 ELEMENT 节点中提取 ID 属性。我需要它来识别包含电子邮件内容的文件名。我尝试过的任何方法似乎都不起作用。理想情况下,该 ID 将添加到strQuery
.
这是我正在使用的 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
解决方案
获取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
。
推荐阅读
- sas - 删除宏变量值列表中的单引号
- visual-studio-code - 更改 VSCode 状态栏的图标顺序
- java - 将 java spring-boot app *.jar 与根文件夹中的其他文件一起部署到 heroku
- firebase - 在每个屏幕中获取当前 Firebase 用户的正确方法是什么?
- android - Android ViewModel 参考 Fragment
- r - 阶乘后有多少个尾随零?
- python - python中的链接方法出错
- python - 如何使用python中的函数连续扩展列表?
- git - 需要紧急 Git 帮助 - 丢失了大多数提交
- python - 是否需要关闭文件才能用python编写?