On Fri, 9 May 2003, Sundar Shanmugasundaram wrote:
OK, nice one Sundar. Lets take it a bit further. What if this XML would
contain also other @val's than A. For example:
<Root>
<Elem val = "B1"/>
<Elem val = "B2"/>
<Elem val = "B12"/>
<Elem val = "A1"/>
<Elem val = "A2"/>
<Elem val = "A21"/>
<Elem val = "A3"/>
</Root>
In this case your solution would not work. Instead the correct one
would be
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:for-each select="./Root/Elem">
<xsl:sort select="substring(@val,1,1)"/>
<xsl:sort select="substring(@val,'2')" data-type="number"/>
<xsl:value-of select="./@val"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
This way the result would be:
A1 A2 A3 A21 B1 B2 B12
Cheers,
Jarkko
Use this template
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" />
<xsl:template match="/">
<xsl:for-each select="./Root/Elem">
<xsl:sort select="substring-after(@val,'A')" data-type="number"/>
<xsl:value-of select="./@val"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Hope this helps you
-----Original Message-----
From: Hugh Dixon [mailto:hugh(_dot_)dixon(_at_)listech(_dot_)com(_dot_)au]
Sent: Friday, May 09, 2003 10:37 AM
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Sorting alpha numeric values
I have a data set:
<Root>
<Elem val = "A1"/>
<Elem val = "A2"/>
<Elem val = "A21"/>
<Elem val = "A3"/>
</Root>
And a template:
<xsl:template match="/">
<xsl:for-each select="./Root/Elem">
<xsl:sort select="@val"/>
<xsl:value-of select="./@val"/>
</xsl:for-each>
</xsl:template>
I was hoping to sort the Elems into
A1
A2
A3
A21
But I cannot get a hybrid alpha/numeric sort happening. Is there some
setting I'm missing, or could someone suggest how I can do this. The
ability to create a custom routine on which to compare the values would
be handy, although I suspect the performance could be an issue.
Thanks in Advance!!
Hugh Dixon
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
****************************************************************
Jarkko Moilanen "Erehtyminen on inhimillista,
Researcher mutta todella suuret mokat
jm60697(_at_)uta(_dot_)fi vaativat tietokoneen käyttöä."
www.uta.fi/~jm60697
GSM: +358 50 3766 927
****************************************************************
* ITCM | Information Technology and Crisis Management
* http://www.itcm.org
****************************************************************
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list