[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Wrapping all elements in CDATA

Subject: Wrapping all elements in CDATA
From: "Jesse Wolff" <jesse_wolff@xxxxxxxxx>
Date: Thu, 22 Apr 2004 00:26:41 -0700
jesse wolff
I'm using a stylesheet to wrap all text nodes in CDATA elements. 

I get the expected output in MSXML and other parsers but in the latest
version of Xalan (2.6.0) I get different results. What am I doing wrong and
how can I correct this to work as expected with all parsers?

XML:
<?xml version="1.0"?>
<Person PersonID="5123456">
   <ContactInfo>
     <Email>person@xxxxxxxx</Email>
     <Phone>111-111-1111</Phone>
   </ContactInfo>
</Person>

Stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
   
   <xsl:variable name="CDATABegin" select="'&lt;![CDATA['" />
   <xsl:variable name="CDATAEnd" select="']]&gt;'" />

   <xsl:template match="node()|@*">
     <xsl:copy>
        <xsl:apply-templates select="*|@*"/>
        <xsl:apply-templates select="text()"/>
     </xsl:copy>
   </xsl:template>

   <xsl:template match="text()">
     <xsl:value-of select="$CDATABegin" disable-output-escaping="yes"/>
     <xsl:value-of select="." disable-output-escaping="yes"/>
     <xsl:value-of select="$CDATAEnd" disable-output-escaping="yes"/>
   </xsl:template>
</xsl:stylesheet>

Output in MSXML and other parsers:
<?xml version="1.0" encoding="UTF-8"?>
<Person PersonID="5123456">
<ContactInfo>
<Email><![CDATA[person@xxxxxxxx]]></Email>
<Phone><![CDATA[111-111-1111]]></Phone>
</ContactInfo>
</Person>

Output in Xalan:
<?xml version="1.0" encoding="UTF-8"?>
<Person PersonID="5123456">
<ContactInfo>
<Email><![CDATA[person@xxxxxxxx]]></Email>
<Phone><![CDATA[111-111-1111]]></Phone><![CDATA[
     ]]><![CDATA[
     ]]><![CDATA[
   ]]></ContactInfo><![CDATA[
   ]]><![CDATA[
]]></Person>


Thanks,
Jesse

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.