我在许多XML文件中看到过这个<![CDATA[ ]]>
里面的数据。有什么用?
答案 0 :(得分:5)
来自维基百科
CDATA部分以以下顺序开头:
<![CDATA[
以第一次出现的序列结束:
]]>
这两个序列之间的所有字符都被解释为字符,而不是标记或实体引用。例如,在这样的行中:
<sender>John Smith</sender>
打开和关闭“sender”标签被解释为标记。但是,如果这样写:
<![CDATA[<sender>John Smith</sender>]]>
然后代码的解释方式与它的编写方式相同:
<sender>John Smith</sender>
查看Wiki页面了解更多详情。
答案 1 :(得分:3)
在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>
将成为文本节点的内容。
答案 2 :(得分:0)
它允许文字文本,包括大多数xml“特殊字符”。它不是“外部”xml数据的一部分,而只是文本。
答案 3 :(得分:0)
解析器会忽略CDATA部分内的任何内容。
例如,您要在xml文档中发送javascript的图像,因为它很可能包含特殊字符(&lt;,&gt;,&amp;等),xml解析器将产生错误。
使用此标记,解析器不会解析它,也不会产生错误。