Subject: Re: [xsl] can the Muenchian method do this? From: Geert Josten <Geert.Josten@xxxxxxxxxxx> Date: Wed, 04 Jan 2006 06:25:20 +0100 |
<xsl:apply-templates select="/songlist/song[Genre = 'Rap'][Artist != preceding-sibling::song/Artist]"/>
<xsl:apply-templates select="/songlist/song[Genre = 'Rap'][not(Artist = preceding-sibling::song/Artist)]"/>
Regards, Geert
Hi Andrew,
Thanks for the help but unfortunately this is not giving me the results I desire. When I run that, it returns an empty set. It also takes a long time to run. There is no way to use the Muenchian method but base it on another value in the node?
Dan
On 1/3/06, dan@xxxxxxxxxxxxx <dan@xxxxxxxxxxxxx> wrote:
Hi,
I would like to select a distinct value based on a sibling. I know that the Muenchian method is used to select distinct values, but can I give it another variable to look at?
Here is my xml: <songlist> <song> <Artist>J-Live</Artist> <Genre>Rap</Genre> </song> <song> <Artist>Phish</Artist> <Genre>Rock</Genre> </song> <song> <Artist>J-Live</Artist> <Genre>Rap</Genre> </song> <song> <Artist>Jay-Z</Artist> <Genre>Rap</Genre> </song> </songlist>
I would like to select all the artists whose Genre is 'Rap' but not have duplicates. So my return set would be 'J-Live, Jay-Z'
Is this possible? I know I can do this with recursion, but obviously the Muenchian method is preferred.
Normal xpath will do:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/"> <xsl:apply-templates select="/songlist/song[Genre = 'Rap'][Artist !preceding-sibling::song/Artist]"/> </xsl:template>
<xsl:template match="song"> <xsl:value-of select="Artist"/> <xsl:if test="position() != last()">, </xsl:if> </xsl:template>
</xsl:stylesheet>
cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] can the Muenchian method , dan | Thread | Re: [xsl] can the Muenchian method , andrew welch |
Re: [xsl] can the Muenchian method , dan | Date | RE: [xsl] Restricting the scope of , Peter Flynn |
Month |