CDATA用于包裹不需解析的文本,避免对<、>、&等字符进行转义,常用于嵌入脚本或html内容,如javaScript代码或RSS描述,提升可读性与编写效率,但不可用于属性值或嵌套,且在兼容性要求高的场景建议仍用实体引用。

CDATA部分在xml中用于包裹一段不需要被解析器解析的文本数据。它的主要作用是让开发者能够直接插入包含特殊字符(如 <、>、& 等)的内容,而无需对这些字符进行实体转义。
避免实体转义
xml解析器会将某些字符(如小于号“<”和与符号“&”)视为标签或实体的开始,如果出现在文本内容中必须进行转义。使用CDATA可以避免这种繁琐的转义。例如:
d) { alert(“Hello & welcome!”); } } ]]>
上面的javascript代码包含“<”、“>”和“&”,如果不用CDATA,就需要写成 和 &,可读性差且容易出错。
常用于嵌入脚本或标记语言
在XML文档中嵌入JavaScript、css或另一段XML(如SOAP消息、配置片段)时,内容经常包含大量尖括号和特殊符号。CDATA使得这类内容可以直接保留原始格式。
比如在RSS或atom订阅中,文章内容可能包含HTML代码:
<description> 这是一段带有 HTML 格式的文本。 点击这里 ]]> </description>
这样解析器不会把其中的 <p> 或 <a> 当作主XML文档的标签处理。
限制与注意事项
CDATA有几点需要注意:
- CDATA只能出现在元素的内容部分,不能用于属性值中。
- 不能嵌套:即CDATA内部不能再出现 <

