RE: [xsl] Sorting with Different Sort Keys

Subject: RE: [xsl] Sorting with Different Sort Keys
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 19 Oct 2007 10:02:15 +0100
I would suggest something like

<xsl:sort select="not(starts-with(lower-case(.), 'seite'))"/>
<xsl:sort select="number(replace(., '[^0-9]', ''))"/>

The not() is because false() sorts before true().

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Jeff Sese [mailto:jsese@xxxxxxxxxxxx] 
> Sent: 19 October 2007 09:32
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Sorting with Different Sort Keys
> 
> 
> On 10 19, 07, at 3:51 PM, Abel Braaksma wrote:
> 
> > Michael Kay wrote:
> >> Start by defining what you want to achieve a little bit more 
> >> precisely.
> >> Where do "Seite 99", "99", "Page 12" and "pink rabbit" fit in your 
> >> desired collating sequence?
> >
> > Now that we're at it, I'm also wondering... how does "Seite 120",  
> > "seite 120", "SEITE     120", "Seite 0120", "seite    0012", "    
> > seite120" and "Seite 12000" fit in (note the extra or 
> missing spaces 
> > and zeroes)?
> 
> I would want this kind of ordering:
> seite 0012 (sort key value should be 12) Siete 99 (sort key 
> value should be 99) Seite 120 (sort key value should be 120) 
> seite 120 (sort key value should be 120) SEITE 120 (sort key 
> value should be 120) Seite 0120 (sort key value should be 
> 120) seite120 (sort key value should be 120) Seite 12000 
> (sort key value should be 12000)
> 99 (sort key value should be 99)
> Page 12 (sort key value should be '')
> pink rabbit (sort key value should be '')
> 
> I hope this make things a little bit clear...
> 
> -- Jeff

Current Thread