CDATA用于标记XML中的纯文本数据,使解析器原样保留所有字符;其限制是不能包含“]]>”且不可嵌套,否则会导致解析错误或结构损坏。
CDATA 是 XML 中用于标记“纯文本数据”的特殊语法,它的核心作用是告诉解析器:这一段内容不用按 XML 规则去解析,所有字符——包括 、&、换行、空格——都原样保留。
XML 解析器默认把
Hello & World 直接写进 XML 元素体,解析器会尝试找匹配的标签和实体,导致格式错误zuojiankuohaophpcn、youjiankuohaophpcn、&),但可读性差、易出错、维护成本高语法固定,由三部分组成:
(注意是 9 个字符,不能多也不能少
)
]]>(必须紧挨着,不能有空格或换行)示例:
0) {
document.write("Hello
");
}
]]>
这段 JS 代码会被完整保留,不会触发任何解析行为。
CDATA 不是万能保险箱,有两条硬性约束:
]]> 字符串——这是结束标记,一旦出现就会提前截断内容,导致后续 XML 结构损坏
如果原始文本里真有 ]]>,需人工拆分,比如用字符串拼接方式绕过: + "(需在应用层处理)。
适合嵌入那些本身含大量 XML 敏感字符、又不想破坏结构的文本:
它不是用来替代良好设计的 XML 结构,而是为“不得不放原始文本”提供安全通道。