加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 限制for-each循环XSL的排序结果数

发布时间:2020-12-16 23:11:50 所属栏目:百科 来源:网络整理
导读:我试图看看是否有可能在一个XSL文件中有一个for-each循环设置,该文件通过许多节点,但我想让它只返回前三个结果,例如 courseunit result80/result/unitunit result77/result/unitunit result96/result/unitunit result69/result/unit/course 然后使用类似于以
我试图看看是否有可能在一个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() &lt;= 3">
    <xsl:value-of select="result"/>
  </xsl:if>
</xsl:for-each>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读