[Home] [By Thread] [By Date] [Recent Entries]
At 2006-03-15 18:00 +0000, Nick Fitzsimons wrote:
Firstly, I'm using XSLT 1.0. First in my response is "thank you for supplying test data". The rules for grouping and sorting are fairly simple in the basic case: I see this only as a sorting issue, since you are returning the result set in a single section. I'm almost certain some straightforward Muenchian grouping will suffice If I have understood your requirement, it isn't necessary to use grouping. I hope the code below helps. . . . . . . . . . . Ken T:\ftemp>type nick.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:nick="urn:x-nick"
exclude-result-prefixes="nick"
version="1.0"><xsl:output indent="yes"/> <nick:type-groupings> <group type="Gorilla" order="1"/> <group type="Chimpanzee" order="2"/> <group type="Orangutan" order="3"/> <group type="Bonobo" order="4"/> </nick:type-groupings> <xsl:template match="/">
<xsl:variable name="apes" select="/apes/ape"/>
<section>
<xsl:for-each select="$apes[@priority>2]">
<xsl:sort select="document('')/*/nick:type-groupings/
group[@type=current()/@type]/@order"
data-type="number"/>
<xsl:sort select="@priority" order="descending" data-type="number"/>
<xsl:sort select="substring(@date,7,4)" order="descending"/>
<xsl:sort select="substring(@date,4,2)" order="descending"/>
<xsl:sort select="substring(@date,1,2)" order="descending"/>
<xsl:if test="position()<=3">
<xsl:element name="{@type}">
<xsl:copy-of select="@priority | @date"/>
</xsl:element>
</xsl:if>
</xsl:for-each>
</section>
</xsl:template></xsl:stylesheet>
T:\ftemp>type nick1.xml
<apes>
<ape priority="5" date="25-01-2006" type="Chimpanzee" />
<ape priority="1" date="26-01-2006" type="Gorilla" />
<ape priority="2" date="29-01-2006" type="Chimpanzee" />
<ape priority="1" date="22-01-2006" type="Orangutan" />
<ape priority="3" date="22-01-2006" type="Bonobo" />
<ape priority="1" date="25-01-2006" type="Bonobo" />
<ape priority="4" date="24-01-2006" type="Gorilla" />
<ape priority="5" date="22-01-2006" type="Bonobo" />
<ape priority="4" date="26-01-2006" type="Chimpanzee" />
<ape priority="4" date="25-01-2006" type="Gorilla" />
<ape priority="2" date="25-01-2006" type="Bonobo" />
<ape priority="3" date="25-01-2006" type="Orangutan" />
<ape priority="1" date="25-01-2006" type="Bonobo" />
<ape priority="3" date="27-01-2006" type="Gorilla" />
<ape priority="1" date="25-01-2006" type="Chimpanzee" />
<ape priority="1" date="25-01-2006" type="Orangutan" />
</apes>T:\ftemp>xslt nick1.xml nick.xsl con
<?xml version="1.0" encoding="utf-8"?>
<section>
<Gorilla priority="4" date="25-01-2006"/>
<Gorilla priority="4" date="24-01-2006"/>
<Gorilla priority="3" date="27-01-2006"/>
</section>
T:\ftemp>type nick2.xml
<apes>
<ape priority="5" date="25-01-2006" type="Chimpanzee" />
<ape priority="1" date="26-01-2006" type="Gorilla" />
<ape priority="2" date="29-01-2006" type="Chimpanzee" />
<ape priority="1" date="22-01-2006" type="Orangutan" />
<ape priority="3" date="22-01-2006" type="Bonobo" />
<ape priority="1" date="25-01-2006" type="Bonobo" />
<ape priority="5" date="22-01-2006" type="Bonobo" />
<ape priority="2" date="25-01-2006" type="Bonobo" />
<ape priority="3" date="25-01-2006" type="Orangutan" />
<ape priority="1" date="25-01-2006" type="Bonobo" />
<ape priority="3" date="27-01-2006" type="Gorilla" />
<ape priority="1" date="25-01-2006" type="Chimpanzee" />
<ape priority="1" date="25-01-2006" type="Orangutan" />
</apes>T:\ftemp>xslt nick2.xml nick.xsl con <?xml version="1.0" encoding="utf-8"?> <section> <Gorilla priority="3" date="27-01-2006"/> <Chimpanzee priority="5" date="25-01-2006"/> <Orangutan priority="3" date="25-01-2006"/> </section> T:\ftemp> -- World-wide on-site corporate, govt. & user group XML/XSL training. G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
|

Cart



