<xsl:template match="catalog"> <head> <title><xsl:value-of select="category"/></title> </head> <body> <!-- Header --> <h1><xsl:value-of select="category"/></h1> <ul> <xsl:for-each select="composition"> <li><xsl:value-of select="title"/></li> </xsl:for-each> </ul> <!-- Body --> <xsl:apply-templates select="composer"> <xsl:sort select="name/last_name"/> <xsl:sort select="name/first_name"/> <xsl:sort select="name/middle_name"/> </xsl:apply-templates> <!-- Signature --> <hr/> Copyright <xsl:value-of select="copyright"/><br/> Last Modified: <xsl:value-of select="last_updated"/><br/> <xsl:apply-templates select="maintainer"/> </body> </xsl:template>
.
selects the context node
xsl:for-each
iterates through the selected nodes,
setting each one to the current node in turn but does not
apply templates to that node.