[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re:dynamic sort using attributes
I feel stupid for asking..I think I kind of figured this one out. <!--- xml --> <?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="test.xsl"?> <items> <sortBy>description</sortBy> <item nm="b1" description="zzzzz" type="1"/> <item nm="c1" description="yyyyy" type="1"/> <item nm="b1" description="ababab" type="0"/> <item nm="c1" description="abxccd" type="1"/> </items> <!-- xsl ---> <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:variable name="dummy" select="string(*//sortBy)"/> <xsl:value-of select="$dummy"/> <xsl:for-each select="*//item"> <xsl:sort select="@*[name()=$dummy]" data-type="text"/> <li><xsl:value-of select="@description"/></li> </xsl:for-each> </xsl:template> </xsl:stylesheet> The above can be extended to pass in a data-type as well. ---------Original Post-------------- Date: Mon, 4 Dec 2006 23:51:53 -0600 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx From: "L P" <listaction@xxxxxxxxx> Subject: dynamic sort using attributes Message-ID: <5b8815450612042151n4e3ffcfn903ec18556df8ee5@xxxxxxxxxxxxxx> Folks, I've tried searching the lists, but could not find a definitive / clear answer to this question, so here it goes: How can I sort an xml list based on attributes dynamically ( I do not know which attribute before hand)? For instance, I have the following xml: <reminders> <reminder category="Test" nm="XXX" description="foobar"/> <reminder category="Test12" nm="yyy" description="barfoo"/> </reminders> I would like to sort the xml file based on the attribute which will be supplied as a parameter. So, assume that i have an xsl:param with the value of the attribute that I would like the results to be sorted by. I know that this can be accomplished if I change the xml structure and make the attributes child elements, but that is not an option for me. Is there any work around that can accomplish this without changing the XSL file (before complie time)? Also, I'm targetting user agents such as IE / Firefox that support XSL 1.0. Thanks in advance
|
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
|