RE: [xsl] Getting the first and last nodes of a sorted nodeset

Subject: RE: [xsl] Getting the first and last nodes of a sorted nodeset
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 09 Apr 2004 16:32:46 -0400
Hi John,

At 12:28 PM 4/9/2004, you wrote:
Thanks, Wendell, for the information about binding a variable to the
sorted result tree fragment.  Since my friend's need was to grab the
earliest and latest dates and the dates are guaranteed to be 10
characters long (2004-01-31) he can use a much simpler approach than I
sent him previously:

Good: glad to hear it.


<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>
<xsl:output method='html'/>

<xsl:template match="/root">
<html>

  <xsl:variable name="ND">
    <xsl:apply-templates select="//nd">
      <xsl:sort/>
    </xsl:apply-templates>
  </xsl:variable>

  <xsl:call-template name="test_template">
    <xsl:with-param name="b"><xsl:value-of select="substring($ND, 1,
10)"/></xsl:with-param>  <!-- earliest date -->
    <xsl:with-param name="c"><xsl:value-of select="substring($ND,
string-length($ND)-9, 10)"/></xsl:with-param> <!-- latest date -->
  </xsl:call-template>

These parameter assignments might be expressed more nicely as


<xsl:with-param name="b" select="substring($ND, 1, 10)"/>
<xsl:with-param name="c" select="substring($ND, string-length($ND)-9, 10)"/>

Interestingly, the reason this is preferable is that these values are now of type string, not RTF, which means (among other subtleties like probably-better performance) that they will cast more intuitively to Booleans (not that that matters here).

Cheers,
Wendell

___&&__&_&___&_&__&&&__&_&__&__&&____&&_&___&__&_&&_____&__&__&&_____&_&&_
"Thus I make my own use of the telegraph, without consulting
the directors, like the sparrows, which I perceive use it
extensively for a perch." -- Thoreau


Current Thread