[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Sorting elements by element name

Subject: RE: [xsl] Sorting elements by element name
From: cknell@xxxxxxxxxx
Date: Thu, 27 Jan 2005 15:05:14 -0500

<?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 match="fruit">
      <xsl:sort select="name()" />

  <xsl:template match="*">
    <xsl:copy-of select="." />

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:  [xsl] Sorting elements by element name


I would like to sort some XML data by the names of the elements. For

	<apple>some example text</apple>
	<pear>some more text</pear>
	<banana>and even more text</banana>


	<apple>some example text</apple>
	<banana>and even more text</banana>
	<pear>some more text</pear>

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:apply-template select="@* | node()">
			<xsl:sort select="name()"/>

Many thanks

Current Thread