|
Subject: RE: [xsl] FW: Medal Table From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 14 Jan 2005 15:48:18 -0000 |
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@xxxxxxxx]
> Sent: 14 January 2005 15:19
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] FW: Medal Table, António Mota | Thread | [xsl] text() handling, Robert Soesemann |
| [xsl] text() handling, Robert Soesemann | Date | Re: [xsl] Comparing two XML documen, Rahil Qamar Yahoo |
| Month |