RE: [xsl] Tokenized String Sorting Puzzle/Problem

Subject: RE: [xsl] Tokenized String Sorting Puzzle/Problem
From: "Houghton,Andrew" <houghtoa@xxxxxxxx>
Date: Wed, 26 Mar 2008 09:34:59 -0400
> From: Scott Lynch [mailto:slynch@xxxxxxxxxx]
> Sent: 26 March, 2008 09:18
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Tokenized String Sorting Puzzle/Problem
>
> What I can't seem to accomplish is sorting the resulting
> pairs into numerical order based on the first and then the
> second values in each pair. Like this (this line breaks are
> just for visual clarity in this email and are not necessary
> in the transform):
>
> "1 0", "1 1", "1 2", "1 3", "1 4",
> "2 0", "2 1", "2 3", "2 4",
> "5 0",
> "6 0",
> "10 0", "10 1", "10 2"

You didn't say whether you were using XSLT 1.0 or 2.0, but a
possible 1.0 solution would be, assuming the above values are
strings:

<xsl:for-each select="$list">
  <xsl:sort order="ascending" data-type="number"
    select="substring-before(.,' ')" />
  <xsl:sort order="ascending" data-type="number"
    select="substring-after(.,' ')" />
  <xsl:value-of select="." />
</xsl:for-each>


Andy.

Current Thread