选择最后一个有子节点的节点

Selecting the last node with a child node

您好,我想知道是否有一些方便的标准可以用来 select 最后一个节点和子节点。例如:

<Results>
    <Result Number="1"/>
    <Result Number="2">
        <Subresult>a</Subresult>
    </Result>
    <Result Number="3"/>
    <Result Number="4">
        <Subresult>a</Subresult>
    </Result>
    <Result Number="5"/>
    <Result Number="6"/>
</Results>

在上面的示例中,我对选择节点号 4 感兴趣,因为它是最后一个具有子节点的节点。

我希望有一些方便的方法可以做到这一点,而不必将其放入 for-each 或其他东西中,比如使用标准或其他东西或一组标准。

希望我的问题和示例有意义!

感谢您的帮助!

首先你过滤那些有节点 (*) 的人,从那个集合中你得到最后一个元素。不会获取包含文本而不是子节点的元素。

(//Result[*])[last()]

测试于 this