<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:x="http://www.w3.org/1999/xhtml" xmlns:cl="http://www.red-bean.com/xmlns/cvs2cl/" xmlns:dc="http://purl.org/dc/elements/1.1/" exclude-result-prefixes="cl" > <xsl:output indent="yes" /> <!-- Filter for cvs2cl's XML output --> <xsl:template match="/"> <rss version='2.0'> <channel> <title>CVS Changelog</title> <description>CVS Changelog Items</description> <xsl:apply-templates select="cl:changelog/cl:entry" /> </channel> </rss> </xsl:template> <xsl:template match="cl:entry"> <item> <title><xsl:value-of select="cl:author"/></title> <dc:date><xsl:value-of select="cl:isoDate"/></dc:date> <description><xsl:for-each select="cl:file"><xsl:value-of select="cl:name"/><xsl:if test="position()!=last()">, </xsl:if></xsl:for-each><br> <xsl:value-of select="cl:msg"/> </description> <x:body> <!-- Choose one of these lines depending on your preferred verbosity --> <xsl:apply-templates select="cl:file"/> <!-- <x:h4><xsl:for-each select="cl:file"><xsl:value-of select="cl:name"/><xsl:if test="position()!=last()">, </xsl:if></xsl:for-each></x:h4> --> <x:p><xsl:value-of select="cl:msg"/></x:p> </x:body> </item> </xsl:template> <xsl:template match="cl:file"> <x:h4><xsl:value-of select="cl:name"/>: <xsl:value-of select="cl:revision"/> (<xsl:value-of select="cl:cvsstate"/><xsl:apply-templates select="cl:tag"/>)</x:h4> </xsl:template> <xsl:template match="cl:tag">; <xsl:value-of select="."/></xsl:template> </xsl:stylesheet>