In the previous example, I could instead have:
<xsl:template match="syllabus"> <xsl:apply-templates select="recommended-books"/> </xsl:template> <xsl:template match="book"> <p><xsl:apply-templates/></p> </xsl:template>
When I add 'pamphlet' or 'article' elements to the children (i.e. siblings of 'book') I just add:
<xsl:template match="pamphlet"> <p><xsl:apply-templates/></p> </xsl:template> <xsl:template match="article"> <p><xsl:apply-templates/></p> </xsl:template>
But it gets even better...