XML 文件中出现 & ? ? - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- XML 文件中出现 & ? ? (http://www.webasp.net/article/16/15541.htm) |
| -- 作者:未知 -- 发布日期: 2004-12-16 |
| 这几天在跟一个公司合作的项目中,对方提供了RSS接口,通过这个接口,在我们网站展现出来,但是对方RSS中出现了一些麻烦的字符,比如 &,®,™ 等。这些字符放到XML中,如果不做特殊处理,就会有错误产生。比如下面的XML:
<item>&</item> 在IE 浏览器,以及一些解析用的DOM中解析这个片段,就会产生错误。 在W3C的技术规范中,也可以看到这样的字符不允许出现: http://www.w3.org/TR/2001/REC-xml-c14n-20010315 比如:对 Text Nodes 允许的字符有如下要求: the string value, except all ampersands are replaced by &, all open angle brackets (< ) are replaced by <, all closing angle brackets (> ) are replaced by >, and all #xD characters are replaced by 
. 由于这些特殊字符比较多,我们在XML中替换的工作量比较大,我们可以在DTD文件中作些定义: 比如DTD文件中增加以下部分: <!-- PERCENT SIGN --> <!ENTITY amp "&#38;"> <!-- COPYRIGHT SIGN --> <!ENTITY reg "®"> <!-- REG TRADE MARK SIGN --> <!ENTITY trade "™"> 并在XML中定义这个XML文件需要这个DTD支持: <!DOCTYPE HeadCount SYSTEM "eula.dtd"> 这样在XML文件中出现 & ® ™ 这类特殊字符就不会再报错了。 |
| webasp.net |