|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Text Sort Problem
What about this: ?
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:f="http://fxsl.sf.net/"
exclude-result-prefixes="f xs"
>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="t">
<xsl:for-each select="row[normalize-space(pb_number)]">
<xsl:sort select="normalize-space(pb_number)"/>
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:copy-of select="row[not(normalize-space(pb_number))]"/>
</xsl:template>
</xsl:stylesheet>
The above transformation applied on this source xml:
<t>
<row>
<pb_number></pb_number>
</row>
<row/>
<row>
<pb_number>xxyy123</pb_number>
</row>
<row>
<pb_number>xxzz111</pb_number>
</row>
<row>
<pb_number>xxyy124</pb_number>
</row>
</t>
results in:
<row>
<pb_number>xxyy123</pb_number>
</row>
<row>
<pb_number>xxyy124</pb_number>
</row>
<row>
<pb_number>xxzz111</pb_number>
</row>
<row>
<pb_number/>
</row>
<row/>
Cheers,
Dimitre Novatchev
On 9/10/05, KrustyDerClown <KrustyDerClown@xxxxxx> wrote:
> Hello,
>
> sorry for the late answer. My problem is not solved. Maybe i am too stupid.
>
> There is also a little change in my problem. I sort not with
> data-type=number, but with the data-typ=text.
>
> My code looks like this: (pb_number is not really a number. Its a number
> with a prefix like PB9999, therefore the sort with data-typ=text)
>
> <xsl:for-each select="row">
> <xsl:sort select="boolean(pb_number)" order="descending"/>
> <xsl:sort select="pb_number" data-type="text"/>
> <tr>
> <td>
> <xsl:value-of select="string"/>
>
> Result:
>
> Entries with empty sequenz
> CR90
> CR99
> PR90
>
> So still the problem is that the entries with an empty sequenz as pb_number
> are shown first in the table.
>
> Can anyone help again ?
>
> Thank you for your support.
>
> Greets Oliver
>
> ----- Original Message -----
> From: "David Carlisle" <davidc@xxxxxxxxx>
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Sent: Thursday, August 25, 2005 12:25 AM
> Subject: Re: Text Sort Problem
>
>
> >
> >> I have a similar problem (with data-type=number) a short time ago ...
but
> >> the solution at that time doesnt work here for this current problem.
> >
> > the solution I posted (negating the sort key) doesn't work for non
> > numeric keys, but the solution Mike posted (which was probably more
> > sensible anyway) does work here. Just have an initial xsl:sort that is
> > select="boolean(my_text)"
> > as that will sort everything as either "true" or "false" depending on
> > whether my_text selects any nodes. so you can then specify ascending or
> > descending to control whether the empty case ("false") sorts before or
> > after the non-empty case ("true")
> >
> > David
> >
> > ________________________________________________________________________
> > This e-mail has been scanned for all viruses by Star. The
> > service is powered by MessageLabs. For more information on a proactive
> > anti-virus service working around the clock, around the globe, visit:
> > http://www.star.net.uk
> > ________________________________________________________________________
>
>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Harry did not ask how Dumbledore knew; ...but Harry had long since
learned that bangs and smoke were more often the marks of ineptitude
than expertise.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








