RE: [xsl] Creating a cdata section using xsl

Subject: RE: [xsl] Creating a cdata section using xsl
From: "Chris Bayes" <Chris@xxxxxxxxxxx>
Date: Tue, 27 Feb 2001 00:35:36 -0000
Paul,
Why on earth would you want to do this?
If it's valid xml which it must be to get this far why write it out as a
cdata. What is wrong with
<doc>
   <display>
            <html>
                <body>John Doe</body>
            </html>
   <display>
</doc>
Something not mentioned on here ever is the cdata-section-elements attribute
on the xsl:output element. So

<xsl:output method="xml" cdata-section-elements="body" />

will get you

<body><![CDATA[John Doe]]></body>

Which isn't what you want. But if you really want to make life difficult for
yourself then

<xsl:template match="/">
<doc>
   <display>
		<xsl:value-of disable-output-escaping="yes"
select="concat('&lt;','![CDATA[')" />
            <html>
                <body><xsl:value-of select="/person/name" /></body>
            </html>
		<xsl:value-of disable-output-escaping="yes" select="concat(']]', '&gt;')"
/>
   </display>
</doc>
</xsl:template>

I don't think you want to really do that though.

Ciao Chris

XML/XSL Portal
http://www.bayes.co.uk/xml


>I am using a stylesheet to take one xml document (source xml) and
>convert it to another xml document (result xml).  A section of the
>result xml is written out as cdata, however, it has data that needs to
>be parsed and inserted from the source xml before it is written out.
>
>For example, given the source document:
>
><person>
>    <name>John Doe</name>
></person>
>
>I want a rusulting document that looks like:
>
><doc>
>   <display>
>        <[!CDATA[
>            <html>
>                <body>John Doe</body>
>            </html>
>        ]]>
>   <display>
></doc>
>
>I have found no way to do this.  I either get:
>
><doc>
>   <display>
>        <[!CDATA[
>            <html>
>                <body><xsl:value-of select="name"/></body>
>            </html>
>        ]]>
>   <display>
></doc>
>
>or I get
>
><doc>
>   <display>
>            <html>
>                <body>John Doe</body>
>            </html>
>  <display>
></doc>
>
>Does any one have any ideas??
>
>
>
> XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


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


Current Thread