XML指南——XML CDATA
在XML文檔中的所有文本都會被解析器解析。
只有在CDATA部件之內(nèi)的文本會被解析器忽略。
--------------------------------------------------------------------------------
解析數(shù)據(jù)
XML 解析器通常情況下會處理XML文檔中的所有文本。
當(dāng)XML元素被解析的時候,XML元素內(nèi)部的文本也會被解析:
<message>This text is also parsed</message>
XML解析器這樣做的原因是XML元素內(nèi)部可能還包含了別的元素,象下面的例子,name元素內(nèi)部包含了first和last兩個元素:
<name><first>Bill</first><last>Gates</last></name>
解析器會認(rèn)為上面的代碼是這樣的:
<name>
<first>Bill</first>
<last>Gates</last>
</name>
--------------------------------------------------------------------------------
轉(zhuǎn)義字符
不合法的XML字符必須被替換為相應(yīng)的實(shí)體。
如果在XML文檔中使用類似"<" 的字符, 那么解析器將會出現(xiàn)錯誤,因?yàn)榻馕銎鲿J(rèn)為這是一個新元素的開始。所以不應(yīng)該象下面那樣書寫代碼:
<message>if salary < 1000 then</message>
為了避免出現(xiàn)這種情況,必須將字符"<" 轉(zhuǎn)換成實(shí)體,象下面這樣:
<message>if salary < 1000 then</message>
下面是五個在XML文檔中預(yù)定義好的實(shí)體:
< < 小于號
> > 大于號
& & 和
' ' 單引號
" " 雙引號
實(shí)體必須以符號"&"開頭,以符號";"結(jié)尾。
注意: 只有"<" 字符和"&"字符對于XML來說是嚴(yán)格禁止使用的。剩下的都是合法的,為了減少出錯,使用實(shí)體是一個好習(xí)慣。
--------------------------------------------------------------------------------
CDATA部件
在CDATA內(nèi)部的所有內(nèi)容都會被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。
一個 CDATA 部件以"<![CDATA[" 標(biāo)記開始,以"]]>"標(biāo)記結(jié)束:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1
}
else
{
return 0
}
}
]]>
</script>
在前面的例子中,所有在CDATA部件之間的文本都會被解析器忽略。
CDATA注意事項(xiàng):
CDATA部件之間不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,將很有可能出錯哦。
同樣要注意在字符串"]]>"之間沒有空格或者換行符。