博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何解决XML文件中特殊字符“& <”导致解析错误的问题
阅读量:4103 次
发布时间:2019-05-25

本文共 632 字,大约阅读时间需要 2 分钟。

“&”与“<”这样的特殊字符直接放在XML元素中,会导致XML文件解析错误。如下所示:

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

  <url></url>

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

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

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

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

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

  <url><![CDATA[]]></url>

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

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

转载地址:http://qdbsi.baihongyu.com/

你可能感兴趣的文章
菜单树
查看>>
MySQL-分布式架构-MyCAT
查看>>
设计模式六大原则(6):开闭原则
查看>>
阿里面试总结--JAVA
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
【设计模式】—-(2)工厂方法模式(创建型)
查看>>
有return的情况下try catch finally的执行顺序(最有说服力的总结)
查看>>
String s1 = new String("abc"); String s2 = ("abc");
查看>>
JAVA数据类型
查看>>
Xshell 4 入门
查看>>
SoapUI-入门
查看>>
Oracle -常用命令
查看>>
JAVA技术简称
查看>>
ORACLE模糊查询优化浅谈
查看>>
2016——个人年度总结
查看>>
2017——新的开始,加油!
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>