Re: [xsl] Setting Sort From Variable

Subject: Re: [xsl] 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


Current Thread