[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Sorting elements by element name
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" encoding="UTF-8" /> <xsl:strip-space elements="*" /> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="fruit"> <fruit> <xsl:apply-templates> <xsl:sort select="name()" /> </xsl:apply-templates> </fruit> </xsl:template> <xsl:template match="*"> <xsl:copy-of select="." /> </xsl:template> </xsl:stylesheet> -- Charles Knell cknell@xxxxxxxxxx - email -----Original Message----- From: G|ray Sen <guray@xxxxxxxxxxxx> Sent: Thu, 27 Jan 2005 20:08:53 +0100 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Sorting elements by element name Hi, I would like to sort some XML data by the names of the elements. For example: <fruit> <apple>some example text</apple> <pear>some more text</pear> <banana>and even more text</banana> </fruit> to <fruit> <apple>some example text</apple> <banana>and even more text</banana> <pear>some more text</pear> </fruit> I have found some XSLT that does that on the net, but there seems to be a problem when the elements have attributes. Is there a way to accomplish the above (possibly by finetuning the XSLT below)? <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-template select="@* | node()"> <xsl:sort select="name()"/> </xsl:apply-template> </xsl:copy> </xsl:template> Many thanks
|
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
|