商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > XML CDATA是什么?

XML CDATA是什么?

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

先说几个核心概念。在XML的世界里,解析器(Parser)是一个相当“较真”的家伙。它有一个基本特性:会处理文档里的所有文本内容。这听起来简单,但实际操作中,这个特性会带来一些麻烦,尤其是当文本里混入了与XML语法冲突的特殊字符时。

所以,理解解析数据CDATA的区别,就成了写一手干净XML的必修课。

解析数据

XML解析器在处理文本时,默认是“开箱即读”的。它会逐字检查元素内部的所有文字,并试图理解其中的结构。比如下面这段代码:

This text is also parsed

解析器会认为它就是一个简单的文本节点。但问题在于,XML元素内部可能还包含了其他元素,像这样:

BillGates

解析器会把上面的代码理解成一个树状结构,自动“拆解”成:

 
    Bill 
    Gates

这就是解析器的本职工作——把文本解析成结构化的数据。但这也意味着,如果你在文本里直接写了“<”或“>”,解析器就会“犯迷糊”,因为它会认为这是一个新标签的开始。

转义字符

为了让解析器能正确理解我们想表达的意思,就必须遵循“转义”规则。简单说,就是那些对XML语法有特殊意义的字符,不能直接写,得用对应的“实体”来代替。

举个例子,如果你想表达“如果薪水小于1000”,不能写成:

if salary < 1000 then

因为解析器看到“<”字符,就会误以为后面跟着一个新标签。正确的做法是使用预定义的实体:

if salary < 1000 then

下面这张表汇总了XML里五个最常用的预定义实体,属于必须记住的基础知识:

字符 实体 说明
< < 小于号
> > 大于号
& & 和号
' ' 单引号
" " 双引号

所有实体都以“&”开头,以“;”结尾。需要明确的是,在XML中,只有“<”和“&”是严格禁止直接使用的,其他几个字符虽然合法,但为了减少出错,养成使用实体的习惯总没错。

CDATA 部件

如果文本里充斥着大量的“<”和“&”字符,比如一段程序代码,一个个去改写成实体不仅繁琐,还容易出错。这时候,CDATA就派上用场了。

CDATA 就像是一个“保护层”,告诉解析器:“这里面的内容你不需要解析,原封不动地输出就行。” 它以一个特殊的标记 开始,以 ]]> 结束。

看个例子,这段Ja vaScript代码里包含了“<”和“&”字符,如果放在CDATA里,完全不用转义:

在这个例子里,