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(_at_)gmx(_dot_)de> 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(_at_)nag(_dot_)co(_dot_)uk>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Thursday, August 25, 2005 12:25 AM
Subject: Re: [xsl] 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
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--
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.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--