Grouping problems like this are easy in XSLT 2.0
<xsl:for-each-group select="Table" group-by="nation">
<p><xsl:value-of select="current-grouping-key()"/></p>
<xsl:for-each-group select="current-group()" group-by="medal">
<xsl:sort select="index-of(('Gold', 'Silver', 'Bronze'), medal)"/>
<xsl:value-of select="count(current-group()), current-grouping-key()"/>
<xsl:if test="position()!=last()">, </xsl:if>
</xsl:for-each-group>
</xsl:for-each-group>
not tested.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Gavin Lyons (i386) [mailto:admin(_at_)i386(_dot_)com]
Sent: 14 January 2005 15:19
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] FW: Medal Table
Hello XSL-list,
I hope someone can provide some insight and help :)
I would like and hope to output Nations by the numbers of
Golds first, then
Silver and then Bronze in this order.
like this
AUT
3 Gold, 1 Silver
JAP
3 Gold
GBR
2 Gold, 1 Bronze
I'm just not sure the best way to tackle the problem
With thanks,
Gavin Lyons
http://www.i386.com
XSL
---
<xsl:for-each select="Table[not (nation='')]">
<xsl:sort select="nation" />
<xsl:variable name="nation"><xsl:value-of
select="nation"/></xsl:variable>
<xsl:value-of select="nation"/> <br/>
- Gold <xsl:value-of
select="count(../Table[medal='Gold' and nation=$nation])"/>
- Silver <xsl:value-of
select="count(../Table[medal='Silver' and nation=$nation])"/>
- Bronze <xsl:value-of
select="count(../Table[medal='Bronze' and nation=$nation])"/>
</xsl:for-each>
XML
---
<Table>
<athlete>Jones John</athlete>
<nation>GBR</nation>
<location>Bormio</location>
<date>01/29/2005</date>
<medal>Gold</medal>
<discipline>Super-G</discipline>
<gender>Mens</gender>
<lastmodified></lastmodified>
<editedby></editedby>
</Table>
<Table>
<athlete>Burt Sample</athlete>
<nation>FRA</nation>
<location>Bormio</location>
<date>01/29/2005</date>
<medal>Silver</medal>
<discipline>Super-G</discipline>
<gender>Mens</gender>
<lastmodified></lastmodified>
<editedby></editedby>
</Table>
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.6.10 - Release Date: 10/01/2005
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.6.10 - Release Date: 10/01/2005
--~------------------------------------------------------------------
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>
--~--