Subject: RE: 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: 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
|