[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Fwd: Parameterised Sorts
<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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|