具有两个等于兄弟节点的Xpath在条件中具有不同的值

时间:2013-11-06 12:40:14

标签: xml xpath

我有以下xml文档片段:

 <masternode>
     <node1>
            <node2>value_node2_1</node2>
            <node2>value_node2_2</node2>
            <node3>value_node3</node3>
     </node1>
     <node1>
            <node2>value_node2_3</node2>
            <node2>value_node2_4</node2>
            <node3>value_node3</node3>
     </node1>
 </masternode>

我正在尝试使用以下xpath获取node3的值:

/ masternode /节点1 [节点2 = “value_node2_1”] [节点2 = “value_node2_2”] /节点3

但它没有用,因为我有两次像node2一样的node2。还有另一种写xpath的方法吗?

1 个答案:

答案 0 :(得分:0)

正如您提到VBA,我假设您使用New MSXML2.DOMDocumentCreateObject("Msxml2.DOMDocument")CreateObject("Microsoft.XMLDOM")之类的内容。默认情况下,这些不使用W3C标准XPath 1.0作为查询语言,而是使用现在未记录的专有选择语言。使用带有New MSXML2.DOMDocument60CreateObject("Msxml2.DOMDocument.6.0")之类的代码的MSXML 6就可以获得开箱即用的XP​​ath 1.0支持或设置

doc.setProperty "SelectionLanguage", "XPath"
在执行doc.selectNodesdoc.selectSingleNode个{{1}}个调用之前,

在您的文档对象上。这样,您发布的XPath 1.0示例应该按预期工作。