RE: [xsl] Sorting XML Elements alphabetically

Subject: RE: [xsl] Sorting XML Elements alphabetically
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 13 Feb 2004 21:25:38 -0000
You want a variation of the identity template:

<xsl:template match="*">
 <xsl:copy>
 <xsl:copy-of select="@*"/>
 <xsl:apply-templates select="*">
   <xsl:sort select="name()"/>
 </xsl:apply-templates>
</xsl:template>

Not tested.

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Peter Loh Yoon Chao
> Sent: 13 February 2004 12:03
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Sorting XML Elements alphabetically
> 
> 
> Hi,
> 
> I am a beginner to the world of XSL and related technologies. 
>  I have an XML document with an arbitrarily deep tree 
> structure where the elements are in random order, e.g.
> 
> <school>
>   <teacher>
>     <subject>maths</subject>
>     <name>tom hart</name>
>   </teacher>
>   <student>
>     <age>12</age>
>     <name>dick jones</name>
>     <gender>male</gender>
>   </student>
> </school>
> 
> I would like to produce XML output from this source where the 
> elements are sorted alphabetically at each level, i.e.
> 
> <school>
>     <student>
>       <age>12</age>
>       <gender>male</gender>
>       <name>dick jones</name>
>     </student>
>   <teacher>
>     <name>tom hart</name>
>     <subject>maths</subject>
>   </teacher>
> </school>
> 
> Is there an XSL transformation that can help me achieve this? 
>  I experimented with different ways of using <xsl:sort> but 
> so far, I seem to have been only sorting data rather than the 
> elements themselves.  Any help would be appreciated.  Thanks.
> 
> Peter
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread