我试图看看是否有可能在一个XSL文件中有一个for-each循环设置,该文件通过许多节点,但我想让它只返回前三个结果,例如
<course> <unit> <result>80</result> </unit> <unit> <result>77</result> </unit> <unit> <result>96</result> </unit> <unit> <result>69</result> </unit> </course>
然后使用类似于以下的for-each循环:
<xsl:for-each select="/course/unit"> <xsl:sort select="result" data-type="number" order="descending"/> <xsl:value-of select="result"/> </xsl:for-each>
但问题是,如果我做了类似的事情:
< xsl:for-each select =“/ course / unit [position()& lt; = 3]”>
它将抓取前3个节点,然后对它进行排序,这不是我需要的,我希望它获得3个最高标记并返回这些节点以显示信息,而不是在它们经历了所有循环后对结果进行排序.我确信有一种简单的方法可以在不使用模板的情况下实现这一点,因此任何提示都将非常受欢迎.
解决方法
使用
<xsl:for-each select="/course/unit"> <xsl:sort select="result" data-type="number" order="descending"/> <xsl:if test="position() <= 3"> <xsl:value-of select="result"/> </xsl:if> </xsl:for-each>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。