我們知道,在 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>