xsl-list
[Top] [All Lists]

RE: Sorting network addresses

2005-03-02 07:47:07
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>
--~--