Michael Kay wrote:
<xsl:template match="text()"> <!-- in the
text node the
replacement of characters with font tags is done-->
<xsl:choose>
<xsl:when test="not(string(.))" />
<!-- test if
textcontent is empty -->
<xsl:otherwise>
<xsl:call-template name="find_char1" >
Some more stuff ...
</xsl:otherwise> <!-- end textcontent
is not empty
-->
</xsl:choose>
</xsl:template>
Incidentally, when I see a template rule whose body consists entirely of an
xsl:choose, my preference is always to split it into one rule for each
branch of the choose:
<xsl:template match="text()[not(string(.))]"/>
<xsl:template match="text()[string(.)]">
<xsl:call-template name="find_char1" >
Some more stuff ...
</xsl:template>
This would also fix the priorities..
Except in this case string(.) is always going to return true for a text node,
so the other rule will never get invoked. (You can't have an empty text node.)
The simplification here should just be to replace the whole xsl:choose
instruction with what is currently the contents of xsl:otherwise:
<xsl:template match="text()">
<xsl:call-template name="find_char1">
Some more stuff ...
</xsl:template>
Then add something like priority="1". Perversely, you could also change the
pattern just to get a higher default priority, like text()[true()]. I wouldn't recommend
that of course, but text()[string(.)] is effectively the same thing, so that's what made
me think of it :-)
Alternatively, you could modify the original rule so that it doesn't apply to
text nodes:
<xsl:template match="@* | * | comment() | processing-instruction()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
But I do completely agree with Michael's point, which is to favor template
rules over explicit conditionals when possible :-)
Evan
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--