Subject: RE: 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="'<![CDATA['" />
<xsl:variable name="CDATAEnd" select="']]>'" />
<!-- 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>
|