xsl-list
[Top] [All Lists]

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

2004-04-07 10:26:48
Sorry about that probably FAQ.  It turned out to be easy.  Here's the
solution I just came up with if anyone is interested:

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

<xsl:template match="/root">
<html>
<xsl:for-each select="//nd">
  <xsl:sort select="."/>
<!--    <xsl:value-of select="."/><br/> -->

  <xsl:if test="position()=1">
    <xsl:call-template name="get_first">
      <xsl:with-param name="f"><xsl:value-of
select="."/></xsl:with-param>
    </xsl:call-template>
  </xsl:if>

</xsl:for-each>
</html>
</xsl:template>

<xsl:template name="get_first">
  <xsl:param name="f"></xsl:param>

  <xsl:for-each select="//nd">
    <xsl:sort select="."/>
    <xsl:if test="position()=last()">
      <xsl:call-template name="test_template">
        <xsl:with-param name="b"><xsl:value-of
select="$f"/></xsl:with-param> <!-- first element -->
        <xsl:with-param name="c"><xsl:value-of
select="."/></xsl:with-param> <!-- last element -->
      </xsl:call-template>
    </xsl:if>
  </xsl:for-each>

</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>