我经常在XML文件中发现这个奇怪的CDATA标签:

<![CDATA[some stuff]]>

我观察到这个CDATA标记总是出现在开头,然后跟着一些东西。

但有时用,有时不用。我假设这是为了标记一些东西是“数据”,将被插入之后。但是什么是数据呢?我用XML标记写的东西不是某种数据吗?


当前回答

当我的xml元素需要存储HTML代码时,我曾经不得不使用CDATA。类似的

<codearea>
  <![CDATA[ 
  <div> <p> my para </p> </div> 
  ]]>
</codearea>

CDATA意味着它会忽略任何可以被解释为XML标签的字符,比如<和>等。

其他回答

通常用于在XML文档中嵌入自定义数据,如图片或声音数据。

它用于包含可能被视为xml的数据,因为它包含某些字符。

这样,里面的数据将被显示,但不会被解释。

其中包含的数据不会被解析为XML,因此不需要是有效的XML,或者可以包含看似XML但实际上不是的元素。

当我的xml元素需要存储HTML代码时,我曾经不得不使用CDATA。类似的

<codearea>
  <![CDATA[ 
  <div> <p> my para </p> </div> 
  ]]>
</codearea>

CDATA意味着它会忽略任何可以被解释为XML标签的字符,比如<和>等。

Cdata是您可能希望传递给xml解析器但仍然不解释为xml的数据。

Say for eg :- You have an xml which has encapsulates question/answer object . Such open fields can have any data which does not strictly fall under basic data type or xml defined custom data types. Like --Is this a correct tag for xml comment ? .-- You may have a requirement to pass it as it is without being interpreted by the xml parser as another child element. Here Cdata comes to your rescue . By declaring as Cdata you are telling the parser don't treat the data wrapped as an xml (though it may look like one )