我正在使用XSL将一个XML转换为另一种形式的XML。
转换时,非英语字符会被转义。说'Ã'逃脱为“Atilde;”。
在解析转换的xml时,我看到以下错误:
org.xml.sax.SAXParseException:引用了实体“Atilde”,但未声明。
我的要求是,我不想让非英文字符被转义。我希望保留这些角色。
在我用来转换XML的XSL中,我编写了以下语句:
<xsl:output method="xml" indent="yes" encoding="utf-8" omit-xml-declaration="no"/>
我应该更改任何这些属性以实现我的要求
答案 0 :(得分:4)
您需要提供doctype
<xsl:output method="xml" indent="yes" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" omit-xml-declaration="no"/>
答案 1 :(得分:2)
您无法在<output>
标记中处理此问题,但在转换中生成text
元素时可以chose not to escape output。要做到这一点,请使用:
<xsl:text disable-output-escaping="yes">