我对XSLT相当陌生,因此仍要学习基础知识。在下面的XML示例中,我感兴趣的是为属性“ Version”选择具有最大数值的所有节点:
<Results>
<Result Version="1">a</Result>
<Result Version="2">a</Result>
<Result Version="3">b</Result>
<Result Version="3">c</Result>
<Result Version="1">d</Result>
<Result Version="3">e</Result>
<Result Version="2">f</Result>
<Result Version="3">g</Result>
<Result Version="1">h</Result>
</Results>
因此,在上面的示例中,我感兴趣的是选择具有值b,c,e和g的节点。
希望我的问题和榜样有意义!
谢谢你的帮助!
最佳答案
我将从定义一个键开始:
<xsl:key name="result-by-version" match="Result" use="@Version" />
然后,您可以使用:
select="key('result-by-version', xs:string(max(Result/@Version)))"
选择具有最高版本的所有结果(在此示例中,上下文节点为“结果”)。
或者,您可以使用更多行人:
select="Result[@Version = (max(../Result/@Version))]"
(这也来自结果的上下文)。
关于xml - 为特定属性选择具有最高值的所有节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28887378/