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:
<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>
</html>
</xsl:template>
<xsl:template name="test_template">
<xsl:param name="b"></xsl:param>
<xsl:param name="c"></xsl:param>
<xsl:value-of select="$b" /><br/>
<xsl:value-of select="$c" />
</xsl:template>
</xsl:stylesheet>