Saxon allows you to define a collation based on your own Java comparator
class.
However, a better solution I think would be to write a function that
normalizes the value into something that collates naturally: in 2.0 you can
then invoke this function to calculate the sort key.
xsl:sort select="my:mangler(ip-address)"
xsl:function name="my:mangler"
xsl:param...
xsl:for-each select="tokenize(...)"
xsl:value-of select="format-number(...)"
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Craig W [mailto:codecraig(_at_)gmail(_dot_)com]
Sent: 02 March 2005 12:51
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Sorting network addresses
Hi,
Is there a way to extend the sort function provided by XSLT? I am
using XALAN. Basically, the elements that I need to sort need a more
specific sort than just text or number.
well the default sorts are on number or text. But say I want to sort
on network addresses, such as 1.2.3.4 ....text and number dont work
here, I need my own sorting (like i would do with a Comparator in
java)..
so if i had
1.2.3.4
170.1.3.3
2.4.3.2
I would want the sort to be like
1.2.3.4
2.4.3.2
170.1.3.3
...however (number sort wont work) and text sort does
1.2.3.4
170.1.3.3
2.4.3.2
see what i mean?
A sample XML may be like
...
<networks>
<network>
<address>1.2.3.4</address>
</network>
<network>
<address>170.1.3.3</address>
</network>
<network>
<address>2.4.3.2</address>
</network>
</networks>
....after sort i would like...
<networks>
<network>
<address>1.2.3.4</address>
</network>
<network>
<address>2.4.3.2</address>
</network>
<network>
<address>170.1.3.3</address>
</network>
</networks>
Someone suggested a key, but I am not sure how that works or how to
make it sort on a network address. Any ideas?
Thanks,
Craig
--~------------------------------------------------------------------
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>
--~--