RE: [xsl] Wrapping all elements in CDATA

Subject: RE: [xsl] Wrapping all elements in CDATA
From: "Jesse Wolff" <jesse_wolff@xxxxxxxxx>
Date: Thu, 22 Apr 2004 09:50:04 -0700
Thanks Jeni, The stylesheet now works for me in Xalan, Saxon, MSXML and the
XML Spy XSLT engine:

<?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:strip-space elements="*"/>
	
	<xsl:variable name="CDATABegin" select="'&lt;![CDATA['" />
	<xsl:variable name="CDATAEnd" select="']]&gt;'" />

	<!-- process all nodes except text nodes -->
	<xsl:template match="*|@*">
		<xsl:copy>
			<!-- process all attributes and child nodes -->
			<xsl:apply-templates select="@*|node()"/>
		</xsl:copy>
	</xsl:template>
	
	<!-- process text nodes -->
	<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>

Current Thread