2014-07-15 42 views
0

希望有人能帮助XPath来选择其中的孩子有一定的价值只有节点

<root> 
    <a> 
     <b>1.00</b> 
     <c> 
      <d/> 
     </c> 
    </a> 
    <a> 
     <b/> 
    </a> 
</root> 

我怎样才能制定XPATH表达式中,我得到的只是如果父节点具有d节点B的值

即,在前面的例子中我会得到第一个b的唯一的值,作为所述第二一个节点不具有A/C/d

回答

1

尝试//*[.//d]/b

即一个Ÿb节点,任何节点的孩子 - * - 具有d后代

1

您需要使用谓词过滤

/root/a[c/d]/b 

即开始与root元素,发现其所有a子女有c/d,最后提取b这些过滤后的a元素。

相关问题