[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Edit text-nodes with XSLT 2.0
Michael Kay wrote:
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()"> <!-- in the text node the <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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|