需要将XML的所有unicode(~)转换为XML(entities.xml)中的iso(˜),其中所有这些值都是格式化的....
entities.xml: -
<entities>
<entity iso="eacute" unicode="x00e9"/>
<entity iso="iacute" unicode="x00ed"/>
</entities>
输入
: -
<?xml version="1.0" encoding="UTF-8"?>
<chapter>
<title>Chaptér Tilté</title>
<body>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
</body>
</chapter>
输出应该是:-
<chapter>
<title>Chaptér Tilté</title>
<body>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
<p>Thís is téxt...</p>
</body>
还有许多其他值也在entities.xml中,如....
<entity iso="nbsp" unicode="x00a0"/>
<entity iso="ordf" unicode="x00aa"/>
<entity iso="ordm" unicode="x00ba"/>
<entity iso="para" unicode="x00b6"/>
<entity iso="plusmn" unicode="x00b1"/>
<entity iso="pound" unicode="x00a3"/>
<entity iso="raquo" unicode="x00bb"/>
<entity iso="reg" unicode="x00ae"/>
<entity iso="sect" unicode="x00a7"/>
您可以使用使用character-map的xslt-2.0实现。
试试下面的样式表:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:character-map name="CharMap">
<xsl:output-character character="í" string="&iacute;"/>
<xsl:output-character character="é" string="&eacute;"/>
</xsl:character-map>
<xsl:output indent="yes" use-character-maps="CharMap"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>