xpath:选择最接近root的节点

时间:2015-11-08 02:04:09

标签: xpath

我需要选择最接近(不需要)root的特定节点名称。

示例:

<root>
    <a>
        <b id="1"></b>
        <b id="2">
            <b id="3"></b>
        </b>
        <c>
            <b id="4"></b>
        </c>
    </a>
</root>

它应该选择b#1b#2b#4,而不是b#2,因为它包含在另一个b节点内。

目前我正在这样做:选择所有b,因此请检查一些父母是否为b,如果是,请将其丢弃。但我这样硬编码,也许 xpath 可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案,只使用 + 祖先,例如:

//table[not(ancestor::table)]

答案 1 :(得分:0)

我会尝试下面的表达 -

//b[not(.//ancestor::b)]

选择 -

<b id="1"/>

<b id="4"/>

直播here