0

我正在搜索一个 XPath 字符串(用于 VBA Excel),它可以查找特定级别上的所有节点,并且仅在它们具有特定(大)子节点的情况下才返回。不管嵌套有多“深”。关系:我不知道特定孩子的嵌套有多深,因此我无法制定固定路径。

在以下示例的情况下。我正在搜索直接在根“”下的所有节点,并且这些节点具有包含名称“Test”的任何子节点,但该子节点可能不包含函数“10”。但是功能“10”可以在更高级别上使用


XML 字符串:

<Program>
   <AA name="1" function="01"/>
   <BB name="2" function="10">
      <CC name="Test" function="01"/>
   </BB>
   <DD name="Test" function="05"/>
   <EE name="3" function="01">
      <FF name="4" function="05">
         <GG name="Test" function="10"/>
      </FF>
   </EE>
</Program> 


要求的选择:

Item(0) = <BB name="2" function="10">
Item(1) = <DD name="Test" function="05">


以下 XPath 表达式给出了Program包含名称“Test”的节点

xmlDoc.selectNodes("/Program/*[.//@name='Test']")


如何根据“功能”过滤孩子

4

1 回答 1

0

你很亲近!不应该这么轻易放弃!

//*[@name='Test' and @function !='10']

或直接来自<Program>/Program//*[@name='Test' and @function !='10']

更新:

/Program/*[@name='Test' and @function !='10' or .//*[@name='Test' and @function!='10']]
于 2013-02-28T15:57:27.450 回答