Xpath只选择子节点具有特定值的节点

时间:2014-07-15 16:36:46

标签: xpath parent

希望有人可以提供帮助

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

我如何制定一个XPATH表达式,只有当父节点有一个D节点时才能得到b值

即,在上一个例子中,我只得到第一个b的值,因为第二个节点没有得到/ c / d

2 个答案:

答案 0 :(得分:1)

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

即。任何b节点,任何节点的子节点* - 具有d后代

答案 1 :(得分:1)

您需要使用谓词来过滤

/root/a[c/d]/b

即。从root元素开始,找到所有ac/d子项,并最终提取这些已过滤的b元素的a子元素。