[xsl] identity transform - include CDATA's, etc

Subject: [xsl] identity transform - include CDATA's, etc
From: "Abie Hamaoui" <ahama5@xxxxxxxxxxx>
Date: Thu, 26 Jun 2003 19:58:36 +0000
I saw an identity transform on msdn online that goes like this:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >


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

</xsl:stylesheet>

however this is not a true identity transform since CDATA sections enclosed in the original xml document in <![CDATA[ ]]> is output as regular characters. I don't know if there are other elements besides CDATA elements that also don't get translated truthfully.
can someone suggest a new identity template that will render the output based on the input exactly as if one were to issue a 'copy' command at a dos prompt, or at least get closer to it than the template above?
eg:
<?xml version="1.0"?>
<docroot>
<element id="a"/>
<![CDATA[ this is cdata ]]>
<element id="b"/>
</docroot>


should become:
<?xml version="1.0"?>
<docroot>
  <element id="a"/>
  <![CDATA[ this is cdata ]]>
  <element id="b"/>
</docroot>

_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail



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



Current Thread