2010-12-13 116 views

回答

5

維基百科

CDATA項具有下列序列開始:

<![CDATA[ 

,並與該序列的第一次出現結束:

]]> 

所有字符這兩個序列之間封入被解釋爲字符,而不是標記或實體引用。例如,在如下一行中:

<sender>John Smith</sender> 

打開和關閉「sender」標記被解釋爲標記。但是,如果這樣寫的:

<![CDATA[<sender>John Smith</sender>]]> 

那麼代碼被解釋的一樣,如果它被寫成這樣:

&lt;sender&gt;John Smith&lt;/sender&gt; 

退房的Wiki頁瞭解更多詳情。

3

CDATA at Wikipedia參見:

在XML文檔中或者外部解析實體,CDATA節是被標記爲解析器解釋爲唯一的字符數據,而不是標記的元件的內容的部分。

這意味着解析器不會解釋包含在<![CDATA[ ]]>中的任何數據。

可以說你想將HTML存儲爲XML文檔中的文本。這是錯誤的:

<root> 
    <myhtml> 
     <div><b>Foo bar</b></div> 
    </myhtml> 
</root> 

解析器會嘗試解析<div><b>Foo bar</b></div>和創建DOM元素。它將在這個例子中起作用,但不適用於符合DTD的文檔。

相反,我們希望這樣的:

<root> 
    <myhtml> 
     <![CDATA[ <div><b>Foo bar</b></div> ]]> 
    </myhtml> 
</root> 

<div><b>Foo bar</b></div>將成爲一個文本節點的內容。

0

它允許使用文本文本,包括大多數xml「特殊字符」。它不是「外部」XML數據的一部分,而只是文本。

0

解析器忽略CDATA部分內的任何內容。

例如,您想要在xml文檔中發送javascript的圖像,因爲它最可能會包含特殊字符(<,>,&等),xml解析器將產生錯誤。

使用此標籤解析器將不會解析它,並且不會產生錯誤。