Проблема доступа к части информации при синтаксическом анализе XML в VBScript - PullRequest
0 голосов
/ 11 сентября 2018

Мой код пройдет через мой XML-файл и извлечет TO, FROM и SUBJECT, что прекрасно работает. Проблема в том, что я не могу понять, как извлечь атрибут ID из узлов ELEMENT. Мне нужно, чтобы определить имя файла, который содержит содержание электронной почты. Ничто из того, что я пробовал, похоже не работает. В идеале этот идентификатор должен быть добавлен к strQuery.

Вот пример XML, с которым я работаю:

Screenshot of XML data.

Вот мой код:

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

1 Ответ

0 голосов
/ 11 сентября 2018

Получить атрибут 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...