xsl-list
[Top] [All Lists]

RE: Wrapping all elements in CDATA

2004-04-22 09:50:04
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>




<Prev in Thread] Current Thread [Next in Thread>