Subject: Re: [xsl] Fwd: Parameterised Sorts From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 10 Dec 2003 11:57:50 GMT |
<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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Fwd: Parameterised Sorts, chris | Thread | Re: [xsl] Fwd: Parameterised Sorts, chris |
[xsl] Using Foreach with Attribute , Manuel Reyes | Date | RE: [xsl] Using Foreach with Attrib, Jarno . Elovirta |
Month |