如何使用 xsl:sort 检索最大值
How to retrieve max value with xsl:sort
我有一个 xml 文件,其中包含多个 'advert' 类型的元素。这最后包含一个子元素价格。
我想使用浏览所有项目的 xsl:sort
和 xsl:for-each
提取最高价格值。
正如其他成员的评论所述,max 可以简单地按原样使用,不需要 xslt sort 和 xslt for-each。
为了能够在 xsl 中按原样使用 xsl,这里有一段简单的代码可以尝试:
<xsl:variable name="the_max">
<xsl:for-each select="Node/Item/year">
<xsl:sort data-type="number" order="descending"/>
<xsl:if test="position()=1"><xsl:value-of select="."/></xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$the_max"/>
使用 XSL 值如下:
<?xml version="1.0" encoding="UTF-8"?>
<Node>
<Item><year>1985</year></Item>
<Item><year>1986</year></Item>
<Item><year>1987</year></Item>
<Item><year>1988</year></Item>
<Item><year>1989</year></Item>
<Item><year>1909</year></Item>
<Item><year>1991</year></Item>
<Item><year>1992</year></Item>
<Item><year>1993</year></Item>
<Item><year>1994</year></Item>
<Item><year>1995</year></Item>
<Item><year>1996</year></Item>
</Node>
我有一个 xml 文件,其中包含多个 'advert' 类型的元素。这最后包含一个子元素价格。
我想使用浏览所有项目的 xsl:sort
和 xsl:for-each
提取最高价格值。
正如其他成员的评论所述,max 可以简单地按原样使用,不需要 xslt sort 和 xslt for-each。
为了能够在 xsl 中按原样使用 xsl,这里有一段简单的代码可以尝试:
<xsl:variable name="the_max">
<xsl:for-each select="Node/Item/year">
<xsl:sort data-type="number" order="descending"/>
<xsl:if test="position()=1"><xsl:value-of select="."/></xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$the_max"/>
使用 XSL 值如下:
<?xml version="1.0" encoding="UTF-8"?>
<Node>
<Item><year>1985</year></Item>
<Item><year>1986</year></Item>
<Item><year>1987</year></Item>
<Item><year>1988</year></Item>
<Item><year>1989</year></Item>
<Item><year>1909</year></Item>
<Item><year>1991</year></Item>
<Item><year>1992</year></Item>
<Item><year>1993</year></Item>
<Item><year>1994</year></Item>
<Item><year>1995</year></Item>
<Item><year>1996</year></Item>
</Node>