Subject: Re: Sort problem
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Mon, 5 Feb 2001 03:49:06 -0800 (PST)
|
Hi Mick,
Use:
<xsl:for-each select="root/line/word[not(@type = 'end')]">
<xsl:sort
select="concat(.,self::*[contains(.,'-')]/following::word[@type='end'])"/>
<xsl:choose>
<xsl:when test="contains(., '-')">
<xsl:value-of select="substring-before(., '-')"/>
<xsl:value-of select="following::word[@type='end']"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()">
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:for-each>
Cheers,
Dimitre Novatchev.
Mick <mick at telekabel dot nl> wrote:
Hi all,
I have the following problem when sorting a list of words. My xml is:
<root>
<line lineID="1">
<word wordID="1">ABC-</word>
<word wordID="2">ABCD</word>
</line>
<line lineID="2">
<word wordID="1" type="end">DEF</word>
<word wordID="2">XYZ</word>
</line>
</root>
I have a stylesheet to create an alphabetical list of words. If a word
contains a dash, it means it has to be joined with the following word
that
has an attribute type="end". The xsl I use is:
<xsl:for-each select="root/line/word">
<xsl:sort select="."/>
<xsl:choose>
<xsl:when test="contains(., '-')">
<xsl:value-of select="substring-before(., '-')"/>
<xsl:value-of select="following::word[@type='end']"/><br/>
</xsl:when>
<xsl:when test="@type='end'"></xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
The result is:
ABCDEF
ABCD
XYZ
which is not what I want because the alphabetical order is wrong. The
xsl:sort only sorts on the 'substring-before' part ABC minus the dash)
and
ignores the 'following::word' bit (DEF). I want the output to be:
ABCD
ABCDEF
XYZ
How can I get the result of the 'substring-before' part and the
'following::word' part to be handled as one entity?
I'm using IE and MSXML3.
-mick
__________________________________________________
Get personalized email addresses from Yahoo! Mail - only $35
a year! http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
- Sort problem
- Mick - Mon, 5 Feb 2001 05:56:25 -0500 (EST)
- <Possible follow-ups>
- Dimitre Novatchev - Mon, 5 Feb 2001 06:49:21 -0500 (EST) <=
- Dimitre Novatchev - Mon, 5 Feb 2001 07:31:23 -0500 (EST)
- Dimitre Novatchev - Mon, 5 Feb 2001 07:54:13 -0500 (EST)
- Mick - Mon, 5 Feb 2001 08:54:25 -0500 (EST)
- Jeni Tennison - Mon, 5 Feb 2001 10:44:42 -0500 (EST)
|
|