xsl-list
[Top] [All Lists]

RE: When does sort occur?

2003-06-13 01:45:30
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



<Prev in Thread] Current Thread [Next in Thread>