CDATA用于声明纯文本数据,避免特殊字符被解析为XML标记;如在中保留代码原样,适用于嵌入脚本、HTML片段或日志等场景。

在XML中,CDATA(Character Data)的作用是告诉解析器:这一段内容是纯文本数据,不需要当作标记语言来解析。它主要用于包含大量特殊字符(比如小于号``、与符号`&`等)的文本内容,避免对这些字符进行转义处理。
CDATA的作用
XML解析器默认会把文档中的某些字符当作标签或实体引用的一部分。例如,`
使用CDATA可以包裹这些“敏感”文本,让解析器跳过语法检查,原样保留内容。
CDATA区段的语法格式
CDATA区段以 开始,以 ]]> 结束:
d) { alert("Hello & Welcome!"); } } ]]>
上面的例子中,代码里的 `` 和 `&` 都不会被解析为XML标记或实体,完整保留原始内容。
适用场景举例
- 嵌入脚本代码:如JavaScript或CSS代码中含有大量``、`&`等符号。
- 包含HTML片段:比如在配置文件中存储一段HTML内容。
- 日志或预格式化文本:需要保留换行、空格和特殊字符的日志信息。
- 避免频繁转义:不用将每个`&`写成`&`,每个`
注意事项
尽管CDATA很方便,但有几点需要注意:
- CDATA区段内不能嵌套另一个CDATA;如果需要包含 `]]>` 字符串本身,必须拆分处理。
- 某些工具或API在处理XML时可能会忽略或误解析CDATA,需确保兼容性。
- CDATA只影响解析行为,不改变数据语义,取出的内容仍是纯文本。
- 在XSLT或DOM操作中,CDATA节点会被当作文本节点处理。
基本上就这些。合理使用CDATA能让XML更简洁、安全地承载复杂文本内容,特别是在混合多种语言(如JS、HTML)的场景下特别实用。









