CDATA和转义字符
被<![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解析器忽略解析,所以更快。
總結
以上是生活随笔為你收集整理的CDATA和转义字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进程和线程的概念、区别和联系
- 下一篇: 阿里巴巴香港上市 确定下周开始路演