Subject: Re: Setting Sort From Variable
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Wed, 2 Jul 2003 15:54:12 +0100
|
Hi Allistair,
> I have a looping for-each and need to sort the list. There are 2
> values that I would like to sort by and both show the same HTML
> output so it would be good if I could just set the
>
> <xsl:sort select={$orderBy}" order="ascending" />
>
> where orderBy variable is set to "@forename" or "@surname".
Unfortunately, attributes that contain XPath expressions (such as the
select attribute of <xsl:sort>) are never attribute value templates.
The traditional way around this is to use something like:
<xsl:sort select="@*[name() = $orderBy]" order="ascending" />
where $orderBy is 'forename' or 'surname'. In other words, select the
attribute whose name is specified by $orderBy.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|