XML/XSLT stylesheet/character map — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 08:26, 26 мая 2010
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 "">
<!ENTITY end-comment "">
]>
<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="<!--" />
<xsl:output-character character="&end-comment;" string="-->" />
</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>