<xsl:sort select="*[local-name()=string($sortRequested)]"
the * means all element children, so..
If $sortRequested = '@name' and name is an attribute of group it dosn't
work.
in that case you are sorting on a key found by taking the element
children with local-name equal to the name "@foo" but there are no
elements called foo (element names are not allowed to begin with @)
What you want in this case is to set your $sortRequested variable to
"foo" and then select the attribute with that name:
<xsl:sort select="@*[local-name()=$sortRequested]"/>
(you don't need string() in either case as a comparison with
local-name() will always be a string comparison.)
Now you want to select either an element or an attribute with name foo
so that's:
<xsl:sort select="(*|@*)[local-name()=$sortRequested]"/>
so long as no element has an attribute an and an element of the same
name. If you had
<x foo="1"><foo>2</foo></x>
and $sortRequested was "foo" then the above would sort as "1" as teh
attribute would be used not the element (as it's first in document
order)
David
--
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list