xsl-list
[Top] [All Lists]

[xsl] Filtering out duplicates in current-group()

2006-03-29 09:32:12
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

 

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