2014-01-07 117 views
3

我是XML及其相關技術的新手。在XML中,<![CDATA [<![CDATA [some text]]]]><![CDATA[>]]>是什麼意思?

這CDATA標籤總是在一開始,再其次是一些東西

我在XML文件中使用此:

<text><![CDATA[<![CDATA[TAX INVOICE]]]]><![CDATA[>]]></text> 

我有以下問題。請幫幫我。

請問 <![CDATA[some text]]]]> 是什麼意思?

+3

不像論壇網站,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) –

+0

@Rraham感謝哥們指點我正確的解決方案 –

回答

8

除非有特殊的字符,例如「&」,並在內容「<」,串

<![CDATA[xxxxx]]> 

意味着完全相同

xxxxx 

不同的是,在第二形式,「&」和「<」具有特殊含義,而在CDATA形式中,唯一具有特殊含義的是作爲終止符的字符串「]]>」。

你更復雜的例子:

<![CDATA[<![CDATA[TAX INVOICE]]]]><![CDATA[>]]> 

有點一場噩夢,而在CDATA部分文本換行出於懶惰的草率的編程習慣的結果。 CDATA節不能嵌套,所以第一個]]>終止第一<!CDATA[,這意味着該字符串等同於

<![CDATA[TAX INVOICE]]> 

你可能會認爲,這又相當於

TAX INVOICE 

但那是不是這種情況,因爲XML解析器只會解釋外部CDATA分隔符,因此它將傳遞給應用程序的內容因此是

<![CDATA[TAX INVOICE]]> 
+0

+1好的解釋! –

4

該術語CDATA來自SGML世界,這是XML複雜的前身。該術語是Character Data的縮寫,意思是數據包含字符,不應該被解析。 CDATA中的標籤,實體,屬性,處理指令被視爲文本,而不是XML元素。