Right now the descriptions in the output document are pure text. The descriptions in the input document are somewhat more styled and include paragraphs, unordered lists and citations; e.g.
<description> <p>Premiered at Queens College in April, 1996 by Sue Ann Kahn, Christine Ims, and Susan Jolles. In 3 movements :</p> <ul> <li>mvt. 1: 5:01</li> <li>mvt. 2: 4:11</li> <li>mvt. 3: 4:26</li> </ul> </description>
But all this is stripped by the default template rule used for the description.
We can use xsl:copy
to move these elements into
the output more or less as is. Here are the necessary rules for the four HTML
elements found in compositions.xml:
<xsl:template match="p"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> <!-- pass HTML along unchanged --> <xsl:template match="ul"> <xsl:copy> <xsl:apply-templates"/> </xsl:copy> </xsl:template> <xsl:template match="li"> <xsl:copy> <xsl:apply-templates"/> </xsl:copy> </xsl:template> <xsl:template match="cite"> <xsl:copy> <xsl:apply-templates"/> </xsl:copy> </xsl:template>
We also have to apply templates to the description
element rather than taking its value:
<xsl:template match="composition"> <h3><xsl:value-of select="title"/></h3> <ul> <li><xsl:value-of select="date"/></li> <li><xsl:value-of select="length"/></li> <li><xsl:value-of select="instruments"/></li> <li><xsl:value-of select="publisher"/></li> </ul> <p><xsl:apply-templates select="description"/></p> </xsl:template>