Почти всегда лучше не иметь условной логики в теле шаблона .
Следовательно, вместо :
<xsl:template match="title|content|block/content">
<xsl:choose>
<!-- conditional processing here -->
</xsl:choose>
</xsl:template>
написать :
<xsl:template match="title">
<!-- Some processing here -->
</xsl:template>
<xsl:template match="content|block/content">
<!-- Some other processing here -->
</xsl:template>
Кстати, соответствие content|block/content
эквивалентно короткому content
.
Таким образом, последний шаблон может быть дополнительно упрощен до :
<xsl:template match="content">
<!-- Some other processing here -->
</xsl:template>