[xsl] Sorting elements by element name

Subject: [xsl] Sorting elements by element name
From: Güray Sen <guray@xxxxxxxxxxxx>
Date: Thu, 27 Jan 2005 20:08:53 +0100
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

Current Thread