Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Use character-map

File: Data.xml <?xml version="1.0" encoding="iso-8859-1"?> <artist>   <filename>aidan_oliver</filename>     <p delete="yes">       <work>Innocence</work>     </p>     <p delete="yes">       E     </p> </artist> File: Transform.xslt <?xml version="1.0"?> <!DOCTYPE xsl:stylesheet [   <!ENTITY start-comment "&#xE501;">   <!ENTITY end-comment "&#xE502;"> ]> <xsl:stylesheet version="2.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:output use-character-maps="comment-delimiters" />   <xsl:character-map name="comment-delimiters">     <xsl:output-character character="&start-comment;"       string="&lt;!--" />     <xsl:output-character character="&end-comment;" string="--&gt;" />   </xsl:character-map>   <xsl:template match="*">     <xsl:copy>       <xsl:copy-of select="@*" />       <xsl:apply-templates />     </xsl:copy>   </xsl:template>   <xsl:template match="*[@delete='yes']">     <xsl:text>&start-comment;     </xsl:text>     <xsl:copy-of select="." />     <xsl:text>&end-comment;     </xsl:text>   </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><artist>   <filename>aidan_oliver</filename>     <!--     <p delete="yes">       <work>Innocence</work>     </p>-->          <!--     <p delete="yes">       E     </p>-->      </artist>