java cdata xml_XML中的CDATA是什么

XML解析器在处理文档时会解析元素内的所有文本,包括可能存在的其他元素。非法的XML字符需要转义,例如使用实体。预定义的实体包括小于号、大于号等。CDATA部分用于指示解析器忽略其内部的文本,避免解析特殊字符。注意CDATA不能嵌套且不能直接包含]]>. PCDATA表示要被解析的字符数据,而CDATA则不受解析影响,保持原始格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML 解析器通常情况下会处理XML文档中的所有文本。

当XML元素被解析的时候,XML元素内部的文本也会被解析:

This text is also parsed

XML解析器这样做的原因是XML元素内部可能还包含了别的元素,象下面的例子,name元素内部包含了first和last两个元素:

BillGates

解析器会认为上面的代码是这样的:

BillGates

转义字符

不合法的XML字符必须被替换为相应的实体。

如果在XML文档中使用类似"

if salary<1000then

为了避免出现这种情况,必须将字符"

if salary<1000 then

下面是五个在XML文档中预定义好的实体:

<

<

小于号

>

>

大于号

&

&

'

'

单引号

"

"

双引号

实体必须以符号"&"开头,以符号";"结尾。

注意: 只有"

CDATA部件

在CDATA内部的所有内容都会被解析器忽略。

如果文本包含了很多的"

一个 CDATA 部件以""标记结束:

在前面的例子中,所有在CDATA部件之间的文本都会被解析器忽略。

CDATA注意事项:

1.CDATA部件之间不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"

2.同样要注意在字符串"]]>"之间没有空格或者换行符。

PCDATA和CDATA的区别究竟是什么呢?

=============================================PCDATA表示已解析的字符数据。

CDATA是不通过解析器进行解析的文本,文本中的标签不被看作标记。

CDATA表示里面是什么数据XML不会解析.比如可能是下面的一段

if(a>b){

System.out.println(a);

}

]]>

注意上面的一个">"符号.

PCDATA的数据是要给XML解析器去解析的,那上面的>去解析肯定会出错了,所以要用实体定义.上面的数据如果用PCDATA表示如下:

if(a&gt;b){

System.out.println(a);

}

cdata是在XML文档里面使用的关键字,用来告诉浏览器,这部分内容不用解析,是给其他程序用的,比如JAVASCRIPT等等,#PCDATA是在 XML约束文档里使用的,如DTD类型的约束文档,在这里面表示元素的内容或属性的取值范围等等,是字符串形式的。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-08-16 13:34

浏览 7214

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值