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 内部不能再出现 <

