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

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









