This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Copy CDATA nodes from XML to XML format w/ XALAN
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 4 Mar 2002 13:55:48 -0000
- Subject: RE: [xsl] Copy CDATA nodes from XML to XML format w/ XALAN
- Reply-to: xsl-list at lists dot mulberrytech dot com
> ...But if one of the descendants of the data element contain an
> attribute, I need to escape the quotes used there as well, eg.
>
> <data>
> <a>
> <b foo="bar">"Bub"</b>
> </a>
> </data>
>
> Should become <a><b foo=\"bar\">\"Bub\"</b></a>
Presumably you're using the text output method, which means that in effect
you are serializing the XML by hand within the stylesheet?
If so, it's easy enough to do:
<xsl:template match="*">
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:apply-templates select="@*"/>
<xsl:text>></xsl:text>
<xsl:apply-templates/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:template>
<xsl:template match="@*">
<xsl:text> </xsl:text>
<xsl:value-of select="name()">
<xsl:text>=\"</xsl:text>
<xsl:call-template name="output-attribute-value"/>
<xsl:text>\"</xsl:text>
</xsl:template>
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list