Subject: RE: Using variables in xsl:sort select attribute
From: Mike McGraw <mmcgraw@xxxxxxx>
Date: Thu, 24 May 2001 12:51:12 -0400
|
Thanks! That worked great. I still don't understand why I couldn't use a
variable as the argument of the select attribute though. Anyway, much thanks
Mike
> -----Original Message-----
> From: Adam Turoff [mailto:ziggy@xxxxxxxxx]
> Sent: Thursday, May 24, 2001 12:36 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: Using variables in xsl:sort select attribute
>
>
> On Thu, May 24, 2001 at 12:01:50PM -0400, Mike McGraw wrote:
> > <xsl:template match="customerList">
> > <xsl:variable name="sortby" select="@sortby">
> >
> > <xsl:for-each select="person">
> > <xsl:sort select="$sortby"/>
> > <tr>
> > <td><xsl:value-of select="name" /></td>
> > <td><xsl:value-of select="age" /></td>
> > </tr>
> > </xsl:for-each>
> >
> > </xsl:template>
> >
> > However, this doesn't work. The parser ignores the sort
> instruction. Am I
> > permitted to use a variable as the argument for the select
> attribute of the
> > sort?
>
> It looks like select="$sortby" is a constant expression, so
> the results
> are in their original order.
>
> Try this instead (yes, it's ugly, but it sorts):
>
> <xsl:for-each select="person/*[name() = $sortby]">
> <xsl:sort select="."/>
> <tr>
> <td><xsl:value-of select="../name" /></td>
> <td><xsl:value-of select="../age" /></td>
> </tr>
> </xsl:for-each>
>
> Z.
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|