CDATA用于标记xml中的纯文本区域,使解析器跳过语法检查并原样保留特殊字符;它解决因为硬性终止符。

CDATA 是 XML 中用来标记“纯文本区域”的机制,它的核心作用是让解析器跳过这段内容的语法检查,原样保留所有字符——包括 “、`&` 这些在 XML 里有特殊含义的符号。
CDATA 解决什么问题
XML 解析器默认会把 `if (a d),不处理就会报错或被误解析。CDATA 提供了一种免转义的干净方案。
- 避免手动把每个
&写成&、每个写成 - 保持代码可读性,尤其适合嵌入脚本、html、日志等含大量符号的文本
- 保留原始换行、缩进和空格,不需要额外格式化
CDATA 的标准写法
必须严格使用起始标记 和结束标记 ]]> 包裹内容,中间不能有任何空格或换行出现在 ]]> 本身上。
- 正确:
©2025]]> - 错误:
(结尾多了空格)或(多了一个]) - 错误嵌套:
...]]>—— CDATA 不支持嵌套
常见适用场景
当你需要在 XML 里安全存放以下内容时,CDATA 是首选:
- javaScript 或 css 代码:含
、&、>的逻辑判断或字符串拼接 - HTML 片段:比如配置项中存一段按钮 HTML:
- 预格式化文本:带缩进的日志、sql 查询、XML 示例本身(只要不出现
]]>)
需要注意的限制
方便不等于万能,用之前得留意这些边界: