RE: [xsl] When does sort occur?

Subject: RE: [xsl] When does sort occur?
From: Jarno.Elovirta@xxxxxxxxx
Date: Fri, 13 Jun 2003 11:45:30 +0300
Hi,

> If I apply a template with a sort, as:
> 
> <xsl:apply-templates select="node" mode="getmax">
>   <xsl:sort select="@num" order="descending" data-type="number"/>
> </xsl:apply-templates>
> 
> will the sorting occur during the select, before the matching 
> template is 
> called, so I can do:

After the select, before the templates are applied. So yes.

> <xsl:template match="node" mode="getmax">
>   <!-- I want only the <node> element that has the @num with 
> the highest 
> numerical value -->
>   <xsl:if test="position()=1"><xsl:value-of select="."/></xsl:if>
> </xsl:template>

Sure, and you can also rewrite it

  <xsl:for-each select="node">
    <xsl:sort select="@num" order="descending" data-type="number"/>
    <xsl:if test="position()=1"><xsl:value-of select="."/></xsl:if>
  </xsl:for-each>

or you can use <http://exslt.org/math/functions/max/> if your processor support EXSLT.

Cheers,

Jarno - Feindflug: B 66883

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread