3 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個贊
XML文檔中的所有文本都將由解析器解析。
但是解析器將忽略CDATA節(jié)中的文本。
CDATA-(未解析)字符數(shù)據(jù)
術(shù)語CDATA用于不應(yīng)該由XML解析器解析的文本數(shù)據(jù)。
XML元素中的字符“ <”和“&”是非法的。
“ <”將產(chǎn)生錯誤,因?yàn)榻馕銎鲗⑵浣忉尀樾略氐拈_始。
“&”將產(chǎn)生錯誤,因?yàn)榻馕銎鲗⑵浣忉尀樽址麑?shí)體的開始。
某些文本(例如JavaScript代碼)包含許多“ <”或“&”字符。為了避免錯誤,可以將腳本代碼定義為CDATA。
解析器將忽略CDATA節(jié)中的所有內(nèi)容。
一個CDATA部件以“開始<![CDATA[”,結(jié)尾是“ ]]>”
在程序輸出中使用CDATA
如果Web瀏覽器將文檔呈現(xiàn)為HTML,則XHTML文檔中的CDATA部分可能會被Web瀏覽器以不同的方式解析,因?yàn)镠TML解析器無法識別CDATA的開始和結(jié)束標(biāo)記,也無法識別HTML實(shí)體引用(例如<在<script>標(biāo)記內(nèi))。如果用于顯示來自不受信任來源的數(shù)據(jù),這可能會導(dǎo)致Web瀏覽器中的渲染問題,并可能導(dǎo)致跨站點(diǎn)腳本漏洞,因?yàn)檫@兩種解析器將在CDATA部分的結(jié)束位置上存在分歧。

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊
CDATA
在HTML中根本沒有任何意義。
CDATA
是一個XML構(gòu)造,用于設(shè)置標(biāo)記的內(nèi)容,該內(nèi)容通常為#PCDATA-解析的字符數(shù)據(jù),取而代之的是#CDATA,即未解析的字符數(shù)據(jù)。它僅在XHTML中相關(guān)且有效。
在script
標(biāo)記中使用它可以避免解析<
和&
。在HTML中,這是不需要的,因?yàn)樵贖TML中,script
已經(jīng)是#CDATA。
添加回答
舉報(bào)