在vbscript中选择具有属性名称的单个节点

时间:2010-12-06 20:28:10

标签: xml vbscript selectsinglenode

拥有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>

我需要使用vbscript

获取属性为context="General"的元素

我可以使用此声明获得顶级节点

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

但不确定如何扩展它。

感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:7)

要获取任何节点,您可以使用此

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

或者,特别是add节点

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

这是使用XPath,可能需要您设置DomDocument

的选择命名空间属性
xmlDocument.setProperty "SelectionLanguage", "XPath"

您可能希望搜索XPath教程,例如w3schools - 新链接