xsl-list
[Top] [All Lists]

Re: Sorting problem

2005-08-31 14:02:55
A good one, David!

I think this type of sort was first used by David McNally a few years
ago. I call it "distance sorting".

Actually, I was thinking that this approach was feasible last night,
but was too tired to try to follow it.


Cheers,
Dimitre Novatchev.


Or rather you could use keys here, but in this case, i think you just want
to sort don't you?


 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0" >
 <xsl:output method="xml" indent="yes"/>


<xsl:template match="root">

<root>
<xsl:for-each select="item">
<xsl:sort data-type="number" 
select="count(preceding-sibling::item[(_at_)type=current()/@type])"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</root>
</xsl:template>


</xsl:stylesheet>


produces

$ saxon item.xml item.xsl
<?xml version="1.0" encoding="utf-8"?>
<root>
  <item type="A" subType="1"/>
  <item type="B" subType="2"/>
  <item type="D" subType="1"/>
  <item type="E" subType="2"/>
  <item type="A" subType="2"/>
  <item type="B" subType="3"/>
  <item type="D" subType="2"/>
  <item type="E" subType="4"/>
  <item type="A" subType="4"/>
  <item type="D" subType="3"/>
  <item type="D" subType="4"/>
</root>

which appears to be what you wanted.

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--




-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Harry did not ask how Dumbledore knew; ...but Harry had long since
learned that bangs and smoke were more often the marks of ineptitude
than expertise.

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>