被<![CDATA[]]>
這個標記所包含的內容將表示爲純文本,好比<![CDATA[<]]>
表示文本內容「<」
。
此標記用於xml文檔中,咱們先來看看使用轉義符的狀況。咱們知道,在xml中,」<」
、」>」
、」&」
等字符是不能直接存入的,不然xml語法檢查時會報錯,若是想在xml中使用這些符號,必須將其轉義爲實體,如」<」
、」>」
、」&」
,這樣才能保存進xml文檔。
在使用程序讀取的時候,解析器會自動將這些實體轉換回」<」
、」>」
、」&」
。舉個例子:
<age> age < 30 </age>
上面這種寫法會報錯,應該這樣寫:
<age> age < 30 </age>
值得注意的是:
(1)轉義序列字符之間不能有空格;
(2) 轉義序列必須以」;」結束;
(3) 單獨出現的」&」不會被認爲是轉義的開始;
(4) 區分大小寫。
在XML中,須要轉義的字符有:
(1)& &
(2)< <
(3)> >
(4)" "
(5)' '
可是嚴格來講,在XML中只有」<」和」&」是非法的,其它三個都是能夠合法存在的,可是,把它們都進行轉義是一個好的習慣。
無論怎麼樣,轉義前的字符也好,轉義後的字符也好,都會被xml解析器解析,爲了方便起見,使用<![CDATA[]]>
來包含不被xml解析器解析的內容。但要注意的是:
(1) 此部分不能再包含」]]>」
;
(2) 不容許嵌套使用;
(3)」]]>」
這部分不能包含空格或者換行。
最後,說說<![CDATA[]]>
和xml轉移字符的關係,它們兩個看起來是否是感受功能重複了?
是的,它們的功能就是同樣的,只是應用場景和需求有些不一樣:
(1)<![CDATA[]]>
不能適用全部狀況,轉義字符能夠;
(2) 對於短字符串<![CDATA[]]>
寫起來囉嗦,對於長字符串轉義字符寫起來可讀性差;
(3) <![CDATA[]]>
表示xml解析器忽略解析,因此更快。code