RE: [xsl] Copy CDATA nodes from XML to XML format w/ XALAN

Subject: RE: [xsl] Copy CDATA nodes from XML to XML format w/ XALAN
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Mon, 4 Mar 2002 13:55:48 -0000
> ...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>&lt;</xsl:text>
<xsl:value-of select="name()"/>
<xsl:apply-templates select="@*"/>
<xsl:text>&gt;</xsl:text>
<xsl:apply-templates/>
<xsl:text>&lt;/</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>&gt;</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@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread