代码之家  ›  专栏  ›  技术社区  ›  user2411083

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

  •  0
  • user2411083  · 技术社区  · 9 年前

    嗨,我想知道是否有一些方便的标准可以用来选择带有子节点的最后一个节点。例如:

    <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或其他东西,比如一个Criteria或其他东西或一组标准。

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

    谢谢你的帮助!

    1 回复  |  直到 9 年前
        1
  •  3
  •   Jaime Mendes    9 年前

    首先,过滤具有节点(*)的对象,然后从该集合中获得最后一个元素。不会获取包含文本而不是子节点的元素。

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

    测试时间: this .