there is nothing in the XPath data model that corresponds to a CDATA
section, CDATA is just a falg to the parser to treat < and & as
characters rather than markup.
When you have
<xsl:template match="td" mode="markup">
<xsl:text><![CDATA[</xsl:text>
<xsl:copy-of select="child::node()"/>
<xsl:text>]]></xsl:text>
</xsl:template>
The XML parser treats this in the same way as
<xsl:template match="td" mode="markup">
<xsl:text></xsl:text>
<xsl:copy-of select="child::node()"/>
<xsl:text></xsl:text>
</xsl:template>
and that is what the XSLT engine sees, which is why you get the result
you get.
Going from
<p><span>xxx</span>...</p>
to
<![CDATA[<p><span>xxx</span>...</p>]]>
is exactly the same as going from
<p><span>xxx</span>...</p>
to
<p><span>xxx</span>...</p>
and you coude it in the same way, with a template that does something
like
<xsl:template match="*">
<xsl:text><</xsl:text>
<xsl:value-of seelct="name()"/>
<xsl:text>></xsl:text>
<xsl:apply-templates/>
<xsl:text>/<</xsl:text>
<xsl:value-of seelct="name()"/>
<xsl:text>></xsl:text>
</xsl:template>
(more complete examples (eg handling attributes) in the faq or archives
of this list)
If you want the serialiser to use the CDATA form rather than <
(although you shouldn't really care which it uses) add
cdata-section-elements="td"
to your xsl:stylesheet element.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--