需要将XML的所有unicode(~)从XML(entities.xml)转换为iso(& tilde;),其中所有这些值都是stroed ....
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"/>
答案 0 :(得分:2)
您可以使用xslt-2.0使用character-map来实现这一目标。
尝试以下样式表:
<?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>