什么<! - [CDATA [<![CDATA [some text]]]] - > <! - [CDATA [ - >]]&gt;用XML表示?

时间:2014-01-07 08:05:39

标签: xml cdata

我是XML及其相关技术的新手。

这个CDATA标签总是在开头,然后是一些东西

我在我的XML文件中使用它:

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

我有以下问题。请帮帮我。

是什么  <![CDATA[some text]]]]>  手段?

2 个答案:

答案 0 :(得分:8)

除非内容中包含“&”和“<”等特殊字符,否则字符串

<![CDATA[xxxxx]]>

表示与

完全相同
xxxxx

不同之处在于,在第二种形式中,“&”和“<”具有特殊含义,而在CDATA形式中,唯一具有特殊含义的是字符串“{ {1}}“作为终结者。

更复杂的例子:

]]>

是一个噩梦,是一种草率的编程习惯导致CDATA部分中的文本被包含在懒惰中。 CDATA部分不能嵌套,因此第一个<![CDATA[<![CDATA[TAX INVOICE]]]]><![CDATA[>]]> 终止第一个]]>,这意味着该字符串等同于

<!CDATA[

您可能认为这反过来等同于

<![CDATA[TAX INVOICE]]>

但事实并非如此,因为XML解析器只会解释外部CDATA分隔符,因此它将传递给应用程序的内容

TAX INVOICE

答案 1 :(得分:4)

CDATA这个词来自SGML世界,它是XML的复杂前身。该术语是Character Data的缩写,表示数据包含字符,不应解析。 CDATA中的标签,实体,属性和处理说明被视为文本,而不是XML元素。