Выберите один узел с именем атрибута в VBScript - PullRequest
4 голосов
/ 06 декабря 2010

Есть XML-файл

<DataSource>
     <localdata>
        <add context="Localization">
           <parameter name="timeout" type="int" defaultvalue="60"/>
           <parameter name="address" type="string" defaultvalue="192.168.9.45" />
           <parameter name="port" type="int" defaultvalue="6789"/>
        </add>
       <add context="General">
           <parameter name="timeout" type="int" defaultvalue="60"/>
           <parameter name="address" type="string" defaultvalue="192.168.9.478" />
           <parameter name="port" type="int" defaultvalue="5674"/>
        </add>
    </localdata>
   </DataSource>

Мне нужно получить элемент с атрибутом context="General", используя vbscript

Я могу получить верхний узел с этим оператором

Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load("DataConfiguration.xml")
Set queryNode = xmlDocument.selectSingleNode(".//localdata")

Но не уверен, как это расширить.

Любая помощь приветствуется.

Заранее спасибо.

1 Ответ

7 голосов
/ 06 декабря 2010

Чтобы получить любой узел, вы можете использовать этот

Set queryNode = xmlDocument.selectSingleNode(".//node()[@context = 'General']")

или, в частности, для узла add

Set queryNode = xmlDocument.selectSingleNode(".//add[@context = 'General']")

Это использует XPath, который может потребовать установкисвойство пространства имен для выбора DomDocument

xmlDocument.setProperty "SelectionLanguage", "XPath"

Возможно, вы захотите найти учебник по XPath, например w3schools - Новая ссылка

...