我有以下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的方法吗?
答案 0 :(得分:0)
正如您提到VBA,我假设您使用New MSXML2.DOMDocument
或CreateObject("Msxml2.DOMDocument")
或CreateObject("Microsoft.XMLDOM")
之类的内容。默认情况下,这些不使用W3C标准XPath 1.0作为查询语言,而是使用现在未记录的专有选择语言。使用带有New MSXML2.DOMDocument60
或CreateObject("Msxml2.DOMDocument.6.0")
之类的代码的MSXML 6就可以获得开箱即用的XPath 1.0支持或设置
doc.setProperty "SelectionLanguage", "XPath"
在执行doc.selectNodes
个doc.selectSingleNode
个{{1}}个调用之前,在您的文档对象上。这样,您发布的XPath 1.0示例应该按预期工作。