所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。

PCDATA

PCDATA 指的是被解析的字符数据(Parsed Character Data)。

XML 解析器通常会解析 XML 文档中所有的文本。

当某个 XML 元素被解析时,其标签之间的文本也会被解析:

<message>此文本也会被解析</message>

解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 < name> 元素包含着另外的两个元素(first 和 last):

<name><first>Bill</first><last>Gates</last></name>

而解析器会把它分解为像这样的子元素:

<name><first>Bill</first><last>Gates</last>
</name>

转义字符

非法的 XML 字符必须被替换为实体引用(entity reference)。

假如您在 XML 文档中放置了一个类似 “<” 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:

<message>if salary < 1000 then</message>

为了避免此类错误,需要把字符 “<” 替换为实体引用,就像这样:

<message>if salary &lt; 1000 then</message>


CDATA

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

在 XML 元素中,”<” 和 “&” 是非法的。

“<” 会产生错误,因为解析器会把该字符解释为新元素的开始。

“&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。

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

CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
<script>
<![CDATA[
function matchwo(a,b)
{if (a < b && a < 0) then{return 1;}
else{return 0;}
}
]]>
</script>

在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。
关于 CDATA 部分的注释:

CDATA 部分不能包含字符串 “]]>”。也不允许嵌套的 CDATA 部分。

标记 CDATA 部分结尾的 “]]>” 不能包含空格或折行。

18.XML CDATA相关推荐

  1. XML CDATA的作用

    操作XML文件时,如果允许用户输入内容,例如∶"< ".">"."/".""等,当生成XML时,会破坏了XM ...

  2. oracle xml中cdata,XML CDATA的作用

    XML CDATA的作用 更新时间:2009年09月01日 00:52:36   作者: 当你用FLASH和xml结合做网站应用程序时,例如你做在我研究游戏排行榜中,当让人自由输入姓名时,人们可以输入 ...

  3. java cdata xml 解析_解析XML CDATA块

    看来 标签中的CDATA内容将在 parser:foundCharacters 中的多个回调中逐步返回 . 在符合NSXMLParserDelegate的类中,尝试通过将CDATA附加到NSMutab ...

  4. XML CDATA概述

    XML 文档中的所有文本均会被解析器解析.只有 CDATA 区段中的文本会被解析器忽略. PCDATA - 被解析的字符数据 XML 解析器通常会解析 XML 文档中所有的文本. 当某个 XML 元素 ...

  5. php xml cdata 解析,![CDATA[文本内容]]代表的意思

    mybatis 写sql语句的xml中sql语句被包裹,就是因为里面可能有等符号,xml解析器格式化的时候无法正确解析,所以用这个包起来. CDATA 指的是不由 XML 解析器进行解析的文本数据.所 ...

  6. php 解析xml cdata,PHP SimpleXML 对有CDATA的xml解析问题 | 瑕疵学院 – 学习无瑕疵,成就有保障...

    $xml_data = file_get_contents('a.xml'); $simplexml = simplexml_load_string($xml_data); print_r($simp ...

  7. XML——CDATA

    XML 解析器通常会解析 XML 文档中所有的文本. 当某个 XML 元素被解析时,其标签之间的文本也会被解析: <message>此文本也会被解析</message> 非法的 ...

  8. java 生成xml cdata_XML CDATA是什么?

    All text in an XML document will be parsed by the parser. XML文档中的所有文本都会被解析器解析. Only text inside a CD ...

  9. 【科普】:10分钟看明白XML和JSON

    引言 NOKIA 有句著名的广告语:"科技以人为本".任何技术都是为了满足人的生产生活需要而产生的.具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个 ...

  10. XML Json

    XML && Json 一.XML XML即可扩展标记语言(eXtensible Markup Language).标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包 ...

最新文章

  1. Python 精选笔试面试习题—sorted 与 sort 单例模式、统计字符个数Count、垃圾回收、lambda函数、静态方法、类方法、实例方法、分布式锁、
  2. Vivado中TCL的使用
  3. Linux中表示“时间”的结构体和相关函数
  4. java堆与非堆的一些研究_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...
  5. tf13: 简单聊天机器人
  6. 阿里帝国到底有多庞大
  7. Mybatis配置文件resultMap映射啥时候可写可不写?
  8. JS 异步编程及常考面试题
  9. Eclipse MicroProfile简介
  10. 基于BOW模型的图像检索
  11. ypid编码是什么_国家药品供应保障综合管理信息平台YPID编码规则与应用
  12. PDF 文档拆分工具包
  13. ClickHouse安装部署
  14. 数字孪生开启传统行业数字化转型升级之路
  15. h5 invoke android,uniapp安卓版本11.0.0以上真机调试App: onLaunch have been invoked
  16. java.lang.ClassNotFoundException: org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEnd
  17. Heart_deconvolution giotto解卷积
  18. 迸发中的小i机器人,2018年多处开花
  19. python简易计算器报告_用 Python 实现简易计算器 ( 下 )
  20. Photoshop-avi-gif-合集

热门文章

  1. 第八回 新年晚会艺压群芳 文理分科三人聚首[林大帅作品选]
  2. 2014年读过的那些书
  3. LinQ To XML——用LinQ查询XML
  4. 苹果“大力鼠”不敌微软“鲨”
  5. R语言模拟:Cross Validation
  6. 常用图表的用法-分布类
  7. element-UI table自定义表头
  8. C#全局钩子和局部钩子记录
  9. 《网络攻防》第十周学习总结
  10. 区分 点操作符+属性名 和 getAttribute()