I think you need to define as your sort key the numeric value of the
code/name after the last hyphen, if there is one. In 2.0 this is easy:
<xsl:sort select="number(replace(code/name, '(.*-)?(\d*)', '$2'))"/>
Harder in 1.0, because there's no straightforward way to extract the stuff
after the last hyphen in a single XPath expression. But perhaps you could
exploit the redundancy in your data, with something like:
<xsl:sort select="number(substring-after(code/name,
concat(ancestor::Part[1]/code/name, '-')))"/>
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Aravind J [mailto:aravindjp(_at_)yahoo(_dot_)com]
Sent: 05 September 2005 10:19
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] muliple level sorting using xsl:sort
Hi ,
I am trying to sort an xml data like
<AAAA>
<desc>SampleXML</desc>
<Part>
<code>
<name>1</name>
</code>
</Part>
<Part>
<code>
<name>5</name>
</code>
<child type="child">
<Part>
<code><name>5-4</name></code>
<child type="child">
<Part>
<code><name>abc</name></code>
</Part>
<Part>
<code><name>def</name></code>
</Part>
</child>
</Part>
<Part>
<code><name>5-3</name></code>
</Part>
</child>
</Part>
<Part>
<code>
<name>2</name>
</code>
</Part>
</AAAA>
when i tried to sort the data using
<xsl:for-each select="Part">
<xsl:sort data-type="number"
select="descendant-or-self::code/name"/> it is doing e
first level sorting correctly, ie data is sorted in
1,2,5 order (code/name) . but sub parts of <part> 5 ie
5-3 and 5-4 are not getting sorted , similarly for
children of 5-4 also.
Any idea how we can sort sub parts ie (child <Part> )
also in this case .
Thanks & Regards
Aravind
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.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>
--~--
--~------------------------------------------------------------------
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>
--~--