XML CDATA的作用
更新時(shí)間:2009年09月01日 00:52:36 作者:
當(dāng)你用FLASH和xml結(jié)合做網(wǎng)站應(yīng)用程序時(shí),例如你做在我研究游戲排行榜中,當(dāng)讓人自由輸入姓名時(shí),人們可以輸入一些符號(hào),例如∶"<"、">"、"/"、"?"等,當(dāng)生成XML時(shí),會(huì)破壞了XML結(jié)構(gòu),使數(shù)據(jù)中斷。
這就要用XML CDATA
在XML文檔中的所有文本都會(huì)被解析器解析。
只有在CDATA部件之內(nèi)的文本會(huì)被解析器忽略。
解析數(shù)據(jù)
XML 解析器通常情況下會(huì)處理XML文檔中的所有文本。
當(dāng)XML元素被解析的時(shí)候,XML元素內(nèi)部的文本也會(huì)被解析:
<message>This text is also parsed</message>
XML解析器這樣做的原因是XML元素內(nèi)部可能還包含了別的元素,象下面的例子,name元素內(nèi)部包含了first和last兩個(gè)元素:
<name><first>Bill</first><last>Gates</last></name>
解析器會(huì)認(rèn)為上面的代碼是這樣的:
<name>
<first>Bill</first>
<last>Gates</last>
</name>
轉(zhuǎn)義字符
不合法的XML字符必須被替換為相應(yīng)的實(shí)體。
如果在XML文檔中使用類似"<" 的字符, 那么解析器將會(huì)出現(xiàn)錯(cuò)誤,因?yàn)榻馕銎鲿?huì)認(rèn)為這是一個(gè)新元素的開(kāi)始。所以不應(yīng)該象下面那樣書(shū)寫(xiě)代碼:
<message>if salary < 1000 then</message>
為了避免出現(xiàn)這種情況,必須將字符"<" 轉(zhuǎn)換成實(shí)體,象下面這樣:
<message>if salary < 1000 then</message>
下面是五個(gè)在XML文檔中預(yù)定義好的實(shí)體:
< < 小于號(hào)
> > 大于號(hào)
& & 和
' ' 單引號(hào)
" " 雙引號(hào)
實(shí)體必須以符號(hào)"&"開(kāi)頭,以符號(hào)";"結(jié)尾。
注意: 只有"<" 字符和"&"字符對(duì)于XML來(lái)說(shuō)是嚴(yán)格禁止使用的。剩下的都是合法的,為了減少出錯(cuò),使用實(shí)體是一個(gè)好習(xí)慣。
CDATA部件
在CDATA內(nèi)部的所有內(nèi)容都會(huì)被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。
一個(gè) CDATA 部件以"<![CDATA[" 標(biāo)記開(kāi)始,以"]]>"標(biāo)記結(jié)束:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1
}
else
{
return 0
}
}
]]>
</script>
在前面的例子中,所有在CDATA部件之間的文本都會(huì)被解析器忽略。
CDATA注意事項(xiàng):
CDATA部件之間不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,將很有可能出錯(cuò)哦。
同樣要注意在字符串"]]>"之間沒(méi)有空格或者換行符。
在XML文檔中的所有文本都會(huì)被解析器解析。
只有在CDATA部件之內(nèi)的文本會(huì)被解析器忽略。
解析數(shù)據(jù)
XML 解析器通常情況下會(huì)處理XML文檔中的所有文本。
當(dāng)XML元素被解析的時(shí)候,XML元素內(nèi)部的文本也會(huì)被解析:
<message>This text is also parsed</message>
XML解析器這樣做的原因是XML元素內(nèi)部可能還包含了別的元素,象下面的例子,name元素內(nèi)部包含了first和last兩個(gè)元素:
<name><first>Bill</first><last>Gates</last></name>
解析器會(huì)認(rèn)為上面的代碼是這樣的:
<name>
<first>Bill</first>
<last>Gates</last>
</name>
轉(zhuǎn)義字符
不合法的XML字符必須被替換為相應(yīng)的實(shí)體。
如果在XML文檔中使用類似"<" 的字符, 那么解析器將會(huì)出現(xiàn)錯(cuò)誤,因?yàn)榻馕銎鲿?huì)認(rèn)為這是一個(gè)新元素的開(kāi)始。所以不應(yīng)該象下面那樣書(shū)寫(xiě)代碼:
<message>if salary < 1000 then</message>
為了避免出現(xiàn)這種情況,必須將字符"<" 轉(zhuǎn)換成實(shí)體,象下面這樣:
<message>if salary < 1000 then</message>
下面是五個(gè)在XML文檔中預(yù)定義好的實(shí)體:
< < 小于號(hào)
> > 大于號(hào)
& & 和
' ' 單引號(hào)
" " 雙引號(hào)
實(shí)體必須以符號(hào)"&"開(kāi)頭,以符號(hào)";"結(jié)尾。
注意: 只有"<" 字符和"&"字符對(duì)于XML來(lái)說(shuō)是嚴(yán)格禁止使用的。剩下的都是合法的,為了減少出錯(cuò),使用實(shí)體是一個(gè)好習(xí)慣。
CDATA部件
在CDATA內(nèi)部的所有內(nèi)容都會(huì)被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代碼一樣,那么最好把他們都放到CDATA部件中。
一個(gè) CDATA 部件以"<![CDATA[" 標(biāo)記開(kāi)始,以"]]>"標(biāo)記結(jié)束:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1
}
else
{
return 0
}
}
]]>
</script>
在前面的例子中,所有在CDATA部件之間的文本都會(huì)被解析器忽略。
CDATA注意事項(xiàng):
CDATA部件之間不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,將很有可能出錯(cuò)哦。
同樣要注意在字符串"]]>"之間沒(méi)有空格或者換行符。
相關(guān)文章
git?push時(shí)卡住的解決方法(長(zhǎng)時(shí)間不報(bào)錯(cuò)也不自動(dòng)退出)
這篇文章主要介紹了git?push時(shí)卡住(長(zhǎng)時(shí)間不報(bào)錯(cuò)也不自動(dòng)退出),解決方法是通過(guò)設(shè)置ssh,用ssh來(lái)克隆代碼然后再進(jìn)行提交,本文給大家詳細(xì)解決方案,需要的朋友可以參考下2023-01-01git 入門教程之本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)的本質(zhì)介紹
本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)在本質(zhì)上沒(méi)有太大區(qū)別,只不過(guò)一個(gè)是本地電腦,一個(gè)是遠(yuǎn)程電腦.這篇文章主要介紹了git 入門教程之本地和遠(yuǎn)程倉(cāng)庫(kù)的本質(zhì)介紹,需要的朋友可以參考下2020-08-08Git回退代碼到某次commit的實(shí)現(xiàn)方法
這篇文章主要介紹了Git回退代碼到某次commit的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Commitizen來(lái)規(guī)范代碼提交信息使用技巧
這篇文章主要為大家介紹了Commitizen來(lái)規(guī)范代碼提交信息使用技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03推薦幾個(gè)好用的WordPress媒體庫(kù)分類/文件夾管理插件
這篇文章主要介紹了推薦幾個(gè)好用的WordPress媒體庫(kù)分類/文件夾管理插件2021-09-09