Subject: RE: Filtering out duplicates in current-group()
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 29 Mar 2006 19:09:17 +0100
|
Just do another level of grouping:
<xsl:for-each-group select="current-group()" group-by="Title">
.. output details of this title ..
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Smith, Donald [mailto:DSmith@xxxxxxxxxxxxxxxxxxx]
> Sent: 29 March 2006 17:32
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Filtering out duplicates in current-group()
>
> Given this source:
>
> <Playlist>
> <Song order="5" id="c95">
> <Title>Maneater</Title>
> <Artist>Hall and Oates</Artist>
> <Album>H20</Album>
> <Year>1982</Year>
> </Song>
> <Song order="13" id="c49">
> <Title>Strangers In The Night</Title>
> <Artist>Frank Sinatra</Artist>
> <Album>Reprise Collection Boxed Set</Album>
> <Year>1966</Year>
> </Song>
> <Song order="8" id="c22">
> <Title>Strangers In The Night</Title>
> <Artist>Frank Sinatra</Artist>
> <Album>Your Hit Parade - '60s Instrumentals</Album>
> <Year>1960</Year>
> </Song>
> </Playlist>
>
> And given the following templates from my stylesheet:
>
> <xsl:template match="Playlist">
> <h1>Songs By Decade</h1>
> <xsl:for-each-group select="Song" group-by="substring(Year, 1, 3)">
> <p>Decade: <xsl:value-of select="current-grouping-key()"/>0's</p>
> <p style="margin-left: 1pc;">
> <xsl:apply-templates select="current-group()/Title" />
> </p>
> </xsl:for-each-group>
> </xsl:template>
>
> <xsl:template match="Title">
> <xsl:apply-templates select="." /><br/>
> </xsl:template>
>
> How do I filter the current group so that the same song doesn't occur
> more than once for a decade (that is, so I don't get "Strangers In the
> Night" more than once for the 60's)?
>
> Thanks,
>
> Don
|