CDATA用于标记XML中的纯文本数据,使解析器原样保留所有字符;其限制是不能包含“]]>”且不可嵌套,否则会导致解析错误或结构损坏。

CDATA 是 XML 中用于标记“纯文本数据”的特殊语法,它的核心作用是告诉解析器:这一段内容不用按 XML 规则去解析,所有字符——包括 、&、换行、空格——都原样保留。
为什么需要 CDATA
XML 解析器默认把
- 例如:
直接写进 XML 元素体,解析器会尝试找匹配的标签和实体,导致格式错误Hello & World - 手动转义虽然可行(
zuojiankuohaophpcn、youjiankuohaophpcn、&),但可读性差、易出错、维护成本高 - CDATA 提供了一种干净、直观的替代方案,尤其适合大段混合内容
CDATA 的基本写法
语法固定,由三部分组成:
- 开始标记:
(注意是 9 个字符,不能多也不能少) - 中间内容:任意文本,支持换行、缩进、特殊符号
- 结束标记:
]]>(必须紧挨着,不能有空格或换行)
示例:
0) {
document.write("Hello
");
}
]]>
这段 JS 代码会被完整保留,不会触发任何解析行为。
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
使用时必须注意的限制
CDATA 不是万能保险箱,有两条硬性约束:
-
不能包含
]]>字符串——这是结束标记,一旦出现就会提前截断内容,导致后续 XML 结构损坏 -
不允许嵌套——一个 CDATA 块内部不能再写另一个
如果原始文本里真有 ]]>,需人工拆分,比如用字符串拼接方式绕过: + "(需在应用层处理)。
典型适用场景
适合嵌入那些本身含大量 XML 敏感字符、又不想破坏结构的文本:
- JavaScript 或 CSS 代码块
- HTML 片段(如邮件模板、富文本配置)
- 日志输出、SQL 查询语句、正则表达式
- 数学公式、伪代码、API 响应示例
它不是用来替代良好设计的 XML 结构,而是为“不得不放原始文本”提供安全通道。









