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

Subject: RE: [xsl] Filtering out duplicates in current-group()
From: Don Smith <dtsmithisogen@xxxxxxxxx>
Date: Wed, 29 Mar 2006 11:21:09 -0800 (PST)
I tried this:

<xsl:for-each-group select="Song"
group-by="substring(Year, 1, 3)">
  <p>Decade: <xsl:value-of
select="current-grouping-key()"/>0's</p>
  <xsl:for-each-group select="current-group()"
group-by="Title">
    <p style="margin-left: 1pc;">
     <xsl:apply-templates
select="current-group()/Title"/>
    </p>
  </xsl:for-each-group>
</xsl:for-each-group>

but still get two "Strangers in the Night". I've also
tried every other permutation of this I can think of.
Same result.

--- Michael Kay <mike@xxxxxxxxxxxx> wrote:

> 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: [xsl] 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
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Current Thread