我正在搜索一个XPath字符串(对于VBA Excel),它可以查找特定级别上的所有节点,并且仅在它们具有特定(大)子节点时才返回。无论这种嵌套是多么“深刻”。关系:我不知道一个特定的孩子嵌套有多深,因此我无法建立固定的路径。
如果是以下示例。我正在搜索直接位于根目录下的所有节点,并且其中包含任何包含名称“Test”的子节点,但此子节点可能不包含函数“10”。但是功能'10'可以在更高级别上使用
XML STRING:
<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']")
如何根据“功能”
过滤孩子答案 0 :(得分: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']]