Subject: RE: [xsl] Sorting alpha numeric values From: Jarkko Moilanen <Jarkko.Moilanen@xxxxxx> Date: Fri, 9 May 2003 09:45:10 +0300 (EEST) |
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.dixon@xxxxxxxxxxxxxx] > Sent: Friday, May 09, 2003 10:37 AM > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > 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@xxxxxx 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Sorting alpha numeric val, Sundar Shanmugasunda | Thread | RE: [xsl] how to display html data,, Sundar Shanmugasunda |
RE: [xsl] EXSLT, Johan Thorèn (EAB) | Date | RE: [xsl] EXSLT, Johan Thorèn (EAB) |
Month |