📄 0202-0400.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0202-0400 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 2.2.4 CDATA</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋体"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下为主体内容 -->
<div align="center">
<center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD rowSpan=2 width="52"></TD>
<TD vAlign=center width="577" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD rowSpan=2 width="57"></TD>
</TR>
<TR vAlign=top>
<TD width="577" ><!-- 正文内容 -->
<DIV class=pt10><B>2.2.4 CDATA</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P> 正象我们前面所说,我们可以把XML文件中除标记以外的所有内容都看作是字符数据,而把标记中的所有内容都看作置标。不过,也有一个例外。在一个特殊的标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式如下:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD
width="100%">〈![CDATA[<BR>文本内容<BR>]]〉</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>聪明的读者可能已经猜出,CDATA的文本内容中是不能出现字符串“]]〉”的,因为它代表了CDATA数据块的结束标志。</P>
<P>在前面讲字符数据时,我们谈到过实体引用。可想而知,当你的文本数据中包含大量特殊符号时,你不得不通篇地使用实体引用,把本来很清晰的一段文字搞得乱七八糟。例如在前面的例子中,我们在“示例”元素中放入了一个XML程序。这时,如果没有CDATA,那么麻烦来了。这个元素需要写成下面的样子:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD
width="100%"><示例><BR>
&lt;联系人&gt;<BR>
&lt;姓名&gt;张三&lt;/姓名&gt;<BR>
&lt;EMAIL&gt;zhang@aaa.com&lt;/EMAIL&gt;<BR>
&lt;/联系人&gt;<BR></示例></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>哇,你要把所有的标记都用实体引用改写,最后写出来的东西连你自己都看不懂了。</P>
<P>为了避免这种不便,你可以把这些字符数据放在一个CDATA数据块中,这样不管它看上去是一个标记还是一个实体引用,这些数据统统被当作字符照单全收。于是,上面的元素就可以写为这个样子:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD
width="100%"><示例><BR>
<![CDATA[<BR>
<联系人><BR>
<姓名>张三</姓名><BR>
<EMAIL>zhang@aaa.com</EMAIL><BR>
</联系人><BR>
]]><BR></示例></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>清楚多了吧!<BR></P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -