|
Subject: RE: [xsl] sorting a table based on first column which contains both numbers and words From: "Robby Pelssers" <robby.pelssers@xxxxxxxxx> Date: Thu, 17 Dec 2009 16:53:14 +0100 |
Mm... damn.... I thought I needed to specify the data-type ;-(
So I just came up with following solution:
<xsl:template match="table">
<table>
<xsl:variable name="numericRows" select="tr[string(number(td))
!='NaN']"/>
<xsl:variable name="alphabeticRows"
select="tr[string(number(td))='NaN']"/>
<xsl:apply-templates select="$numericRows">
<xsl:sort select="td" data-type="number"/>
</xsl:apply-templates>
<xsl:apply-templates select="$alphabeticRows">
<xsl:sort select="td" data-type="text"/>
</xsl:apply-templates>
</table>
</xsl:template>
But I also tested without specifying any data-type and you're right
...aaargh..
<xsl:template match="table">
<table>
<xsl:apply-templates select="tr">
<xsl:sort select="td"/>
</xsl:apply-templates>
</table>
</xsl:template>
Thx,
You made life a lot easier ;-)
Robby
-----Original Message-----
From: Andrew Welch [mailto:andrew.j.welch@xxxxxxxxx]
Sent: Thursday, December 17, 2009 4:28 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] sorting a table based on first column which contains both
numbers and words
2009/12/17 Robby Pelssers <robby.pelssers@xxxxxxxxx>:
> Hi all,
>
> I have the use case where I need to sort a table based on it's first
column. This column can contain only numbers but also a mix of words and
numbers. See example below.
>
> <table>
> <tr>
> <td>5</td>
> </tr>
> <tr>
> <td>3</td>
> </tr>
> <tr>
> <td>Banana</td>
> </tr>
> <tr>
> <td>Apple</td>
> </tr>
> </table>
>
>
> I want following output (first sorted numerical and then alphabetically)
>
> <table>
> <tr>
> <td>3</td>
> </tr>
> <tr>
> <td>5</td>
> </tr>
> <tr>
> <td>Apple</td>
> </tr>
> <tr>
> <td>Banana</td>
> </tr>
> </table>
>
> How can I accomplish this with xslt?
The default sort will do that, read about xsl:sort
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] sorting a table based on , Andrew Welch | Thread | RE: [xsl] sorting a table based on , Michael Kay |
| Re: [xsl] sorting a table based on , Andrew Welch | Date | RE: [xsl] sorting a table based on , Michael Kay |
| Month |