xpath / xslt:根据子节点查找最后一个节点

时间:2011-12-14 10:01:31

标签: xslt xpath

如何找到包含特定结构的最后一个节点?

    <defect-event>
        <event-assigned-to>
            <assigned-to-user>
                <last-name>Doe</last-name>
                <first-name>John</first-name>
                <middle-name></middle-name>
            </assigned-to-user>
        </event-assigned-to>
    </defect-event>

在“分配给用户”子节点的同一级别,低于或高于该节点的情况下,可能存在许多“缺陷事件”节点。 “分配给用户”子节点也可以有多个“缺陷事件”节点。

我需要找到最后一个包含“已分配给用户”子节点的“缺陷事件”节点。

谢谢!

1 个答案:

答案 0 :(得分:0)

这些方面的东西可能就是你想要的东西:

defect-event[event-assigned-to[assigned-to-user]][position()=last()]

实际上,您说“找到包含defect-event event-assigned-to的所有assigned-to-user,然后只给我position()的{​​{1}} last()”。

话虽如此,您可能需要根据您尝试查找节点时所处的上下文以及您对节点所做的事情进行调整(例如:如果您在某个节点中,行为可能会有所不同for-each循环而不是apply-templates情况。)