我经常在XML文件中发现这个奇怪的CDATA标签:
<![CDATA[some stuff]]>
我观察到这个CDATA标记总是出现在开头,然后跟着一些东西。
但有时用,有时不用。我假设这是为了标记一些东西是“数据”,将被插入之后。但是什么是数据呢?我用XML标记写的东西不是某种数据吗?
我经常在XML文件中发现这个奇怪的CDATA标签:
<![CDATA[some stuff]]>
我观察到这个CDATA标记总是出现在开头,然后跟着一些东西。
但有时用,有时不用。我假设这是为了标记一些东西是“数据”,将被插入之后。但是什么是数据呢?我用XML标记写的东西不是某种数据吗?
当前回答
其中包含的数据不会被解析为XML,因此不需要是有效的XML,或者可以包含看似XML但实际上不是的元素。
其他回答
CDATA代表字符数据。您可以使用它来转义某些字符,否则这些字符将被视为常规XML。其中的数据将不会被解析。 例如,如果你想传递一个包含&的URL,你可以使用CDATA来实现。否则,您将得到一个错误,因为它将被解析为常规XML。
通常用于在XML文档中嵌入自定义数据,如图片或声音数据。
它转义一个不能像往常一样传递给XML的字符串:
例子:
字符串中包含“&”。
你不能:
<FL val="Company Name">Dolce & Gabbana</FL>
因此,您必须使用CDATA:
<FL val="Company Name"> <![CDATA["Dolce & Gabbana"]]> </FL>
它用于包含可能被视为xml的数据,因为它包含某些字符。
这样,里面的数据将被显示,但不会被解释。
从维基百科:
在XML文档或外部解析实体中,CDATA节是一个 元素内容的一部分,标记为供解析器解释 仅作为字符数据,而不是标记。 http://en.wikipedia.org/wiki/CDATA
因此:CDATA中的文本被解析器视为字符,而不是XML节点。