读取xml文件"分析EntityName 时出错"的解决方案

读取xml文件"分析EntityName 时出错"的解决方案:

  这几天在跟一个公司合作的项目中,对方提供了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 &amp;, all open angle brackets (< ) are replaced by &lt;, all closing angle brackets (> ) are replaced by &gt;, and all #xD characters are replaced by &#xD;. 
  由于这些特殊字符比较多,我们在XML中替换的工作量比较大,我们可以在DTD文件中作些定义:
  比如DTD文件中增加以下部分:
  <!-- PERCENT SIGN -->
  <!ENTITY amp "&#38;#38;">
  <!-- COPYRIGHT SIGN -->
  <!ENTITY reg "&#x00AE;">
  <!-- REG TRADE MARK SIGN -->
  <!ENTITY trade "&#x2122;">
  并在XML中定义这个XML文件需要这个DTD支持:
  <!DOCTYPE HeadCount SYSTEM "eula.dtd">
  这样在XML文件中出现 & ® ™ 这类特殊字符就不会再报错了。
  有关更多的特殊字符可以参看:
http://xml.coverpages.org/CourtDocument11-2002-05s-DTD.txt
  那里罗列的特殊字符有近200个。

 

那么,如何将DTD文件的编写规则是怎样的呢?

http://www.cppblog.com/Lee7/archive/2009/06/28/88691.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值