我们知道,在 XML 中,一些字符拥有特殊的意义。
如果你把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
这样会产生 XML 错误:
<message>if salary < 1000 then</message>
为了避免这个错误,请用实体引用来代替 "<" 字符:
<message>if salary <
1000 then</message>
在 XML 中,有 5 个预定义的实体引用:
实体引用 | 字符 | 字符名称 |
< | < | 小于 |
> | > | 大于 |
& | & | 和号 |
' | ' | 单引号 |
" | " | 引号 |
注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
在XML文档中,构成元素内容或属性的字符一般用它本身表示,但对于XML中的保留字符如“<”,“>”等就不适用了。在XML文档中如果要使用到保留字符的话就要利用实体引用方式来表示。上表列出了XML中的五个保留字符及实体引用。
例:实体引用实例,文件名exa.xml。
<?xml version="1.0" encoding="gb2312" ?>
<recommendation>
<title>< <红楼梦> > & < <水浒传>></title>
</recommendation>
实体引用解决了如何在元素值或属性值中使用XML的保留字符。但是,当XML文档中使用到较多的保留字符时,采用实体引用方式来处理就比较繁琐了,而且代码的可读性也降低了,使用CDATA标记就是一种比较好的解决办法。CDATA标记以“<![CDATA[”开始,以“]]>”结束,而对于CDATA标记之间的内容可以直接使用XML的保留字符,而不需要通过实体引用。同样,上题改成使用CDATA标记。
例: CDATA的使用,code.xml。
<?xml version="1.0" encoding="gb2312" ?>
<recommendation>
<title>
<![CDATA[ <<红楼梦>> &<<水浒传>> ]]>
</title>
</recommendation>