xsl-list
[Top] [All Lists]

Re: can the Muenchian method do this?

2006-01-03 02:31:01
On 1/3/06, dan(_at_)streampad(_dot_)com <dan(_at_)streampad(_dot_)com> 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

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