加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何解决XML文件中特殊字符“& <”导致解析错误的问题

发布时间:2020-12-16 05:30:01 所属栏目:百科 来源:网络整理
导读:“”与“”这样的特殊字符直接放在XML元素中,会导致XML文件解析错误。如下所示: salaryif salary 1000 then/salary urlhttp://www.baidu.com/s?bs=zuozhuanwd=%D7%F3%D7%AC/url 前者的XML元素直接使用了小于号“”,后者使用了和号“”,这样的XML会产生解
“&”与“<”这样的特殊字符直接放在XML元素中,会导致XML文件解析错误。如下所示:

  <salary>if salary < 1000 then</salary>

  <url>http://www.baidu.com/s?bs=zuozhuan&wd=%D7%F3%D7%AC</url>

前者的XML元素直接使用了小于号“<”,后者使用了和号“&”,这样的XML会产生解析错误。为避免此类错误,专业说法是用这些特殊字符的实体引用来代替。

正确的写法,小于号“<”应该用“&lt;”代替,和号“&”应该用“&amp;”代替,这两个字符必须用实体引用代替。

另外还有大于号、单引号和双引号,这3个特殊字符可以存在于XML中,不会引起解析错误,但是将他们分别替换为实体引用“&gt;”、“&apos;”、 “&quot;”是更加符合标准的语法。

再介绍一种解决此类解析错误的方法:使用CDATA部件,前面的两个例子可以这么写:

  <salary><![CDATA[if salary < 1000 then]]></salary>

  <url><![CDATA[http://www.baidu.com/s?bs=zuozhuan&wd=%D7%F3%D7%AC]]></url>

原理就是CDATA部件包含的内容会被解析器忽略,CDATA区块由 <![CDATA[ 开始,以 ]]> 结束。CDATA区块内部不可以再出现 ]]> 这样的字符串,这也意味着CDATA部件禁止嵌套使用。

本文的两个例子使用实体引用比较合适。如果文本中间大量出现“<”“&”符号,例如一些条件判断的程序代码,逐一替换实体引用就不如直接用CDATA部件把整段代码包含起来更直观。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读