<xsl:for-each select="book/desc">
<xsl:sort select="string-length(.)" data-type="number"
order="descending"/>
<xsl:if test="position() < 3">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Karl Koch [mailto:TheRanger(_at_)gmx(_dot_)net]
Sent: 22 July 2005 23:14
To: Mulberry list
Subject: [xsl] Sorting based on string length in an element
Hello XSLT experts,
I have the following kind of content:
<bookshelf>
<book><desc>description AAAA</desc></book>
<book><desc>description AA</desc></book>
<book><desc>description AAA</desc></book>
<book><desc>description A</desc></book>
</bookshelf>
I am looking for one stylesheet that sorts the booklist in
descending order
depending on the length of the <desc> element. The result
would look like
this:
<bookshelf>
<book><desc>description AAAA</desc></book>
<book><desc>description AAA</desc></book>
<book><desc>description AA</desc></book>
<book><desc>description A</desc></book>
</bookshelf>
Also I would like to have a slight modification of that which
cuts the list
at a certain position (e.g. pos = 2) which would give me this result:
<bookshelf>
<book><desc>description AAAA</desc></book>
<book><desc>description AAA</desc></book>
</bookshelf>
How would this modified stylesheet look like assuming that it
should also
work properly in case the list is shorter than pos?
Kind Regards,
Karl
--
5 GB Mailbox, 50 FreeSMS http://www.gmx.net/de/go/promail
+++ GMX - die erste Adresse fo?=r Mail, Message, More +++
--~------------------------------------------------------------------
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>
--~--