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