Skip to content

Instantly share code, notes, and snippets.

@davecoggins
Created February 4, 2013 10:55
Show Gist options
  • Save davecoggins/4706121 to your computer and use it in GitHub Desktop.
Save davecoggins/4706121 to your computer and use it in GitHub Desktop.
<data>
<results handle="results" value="results">
<item>
<artistname handle="artistname" value="artistName">Radiohead</artistname>
<collectionname handle="collectionname" value="collectionName">The Best of Radiohead</collectionname>
<trackname handle="trackname" value="trackName">Karma Police</trackname>
</item>
<item>
<artistname handle="artistname" value="artistName">Radiohead</artistname>
<collectionname handle="collectionname" value="collectionName">OK Computer</collectionname>
<trackname handle="trackname" value="trackName">Karma Police</trackname>
</item>
<item>
<artistname handle="artistname" value="artistName">Radiohead</artistname>
<collectionname handle="collectionname" value="collectionName">OK Computer (Collector's Edition)</collectionname>
<trackname handle="trackname" value="trackName">Karma Police</trackname>
</item>
<item>
<artistname handle="artistname" value="artistName">Radiohead</artistname>
<collectionname handle="collectionname" value="collectionName">OK Computer (Collector's Edition)</collectionname>
<trackname handle="trackname" value="trackName">Creep</trackname>
</item>
</results>
</data>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<ul>
<xsl:for-each select="data/results/item[not(artistname=preceding-sibling::item/artistname) or not(trackname=preceding-sibling::item/trackname)]">
<li>
<xsl:value-of select="artistname"/> - <xsl:value-of select="trackname"/>
</li>
</xsl:for-each>
</ul>
<ul>
<xsl:apply-templates select="data/results/item" />
</ul>
</xsl:template>
<xsl:template match="/data/results/item">
<li>
<xsl:value-of select="artistname"/> - <xsl:value-of select="trackname"/>
</li>
</xsl:template>
</xsl:stylesheet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment