如何解决XML: ' ' 等html字符转义的引用出错问题?

 更新时间:2015年10月9日 12:44  点击:720

错误现象

error on line 90730 at column 31: Entity 'ldquo' not defined


&在xml中是特殊符号, 会出问题。解决:

1.

在xml中加入一段代码,如下:

<!DOCTYPE your_root_name [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”"> 
<!ENTITY pound "£">
<!ENTITY yen "¥">
<!ENTITY euro "€">
]>

如果要在生成的html代码中出现&nbsp;那么要用下面的:

用<xsl:text></xsl:text>可以保留空格,注意这里的xsl类型为text才可以,为其他的就不行了。

另外,disable-output-escaping 属性为yes时,可以禁止转义输出,即直接输出<,&等字符<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>

 或者<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;&nbsp;]]></xsl:text>

更多参考w3c文档http://www.w3.org/TR/html401/sgml/entities.html 


 2.“&nbsp;”改为“&amp;nbsp;”就可以了。

"&amp;nbsp;"中的nbsp是non-breaking space的意思。它不是XML的内建(built-in)实体。而html 中用到它,xhtml中也有定义。它代表一个空格,而且指示浏览器不能在此处打断(breaking,其实就是不能换行)。


[!--infotagslink--]

相关文章