XML入门教程:XML CDATA的作用

来源:网页教学网 时间:2007-11-07 14:08:00 

如果您还不太了解XML技术,您可以先看看此文:XML的语法、结构以及相关的一些技术XML DOM介绍和例子

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

Parsed 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> 



在XML中有5个预定义的实体引用:


&lt; < 小于 
&gt; > 大于 
&amp; & 和号 
&apos; ' 省略号 
&quot; " 引号 


注释:严格地讲,在XML中仅有字符"<"和"&"是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

CDATA

CDATA内部的所有东西都会被解析器忽略。

假如您的文本中包含了大量的"<"和"&"字符 - 就像编程代码中经常出现的情况一样 - 那么这个XML元素就可以被定义为一个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区段的嵌入是不被允许的。


同时也需要确保在"]]>"字符串中没有空格或折行。

相关推荐:XmlHttp对象参考中文手册下载(chm)

标签:xml,CDATA
0
投稿

猜你喜欢

  • 在命令行用 sort 进行排序的方法

    2023-02-23 07:07:38
  • Python读写及备份oracle数据库操作示例

    2024-01-21 17:09:45
  • python 自动化偷懒的四个实用操作

    2023-11-19 08:49:48
  • Python使用PyCrypto实现AES加密功能示例

    2022-09-18 13:23:57
  • php的PDO事务处理机制实例分析

    2024-05-11 09:45:30
  • asp Http_Referer,Server_Name和Http_Host

    2011-03-29 11:12:00
  • mysql优化之慢查询分析+explain命令分析+优化技巧总结

    2024-01-16 03:12:30
  • 致Python初学者 Anaconda入门使用指南完整版

    2021-09-08 04:48:36
  • 浅析php中array_map和array_walk的使用对比

    2023-09-10 22:22:28
  • Vue利用mockjs编写假数据并应用的问题记录

    2024-04-28 09:27:31
  • pytorch 中forward 的用法与解释说明

    2021-08-10 04:14:44
  • Git配置用户签名方式及原因说明

    2022-06-17 05:54:50
  • 使用Python3编写抓取网页和只抓网页图片的脚本

    2023-08-15 08:00:17
  • 100行代码实现一个vue分页组功能

    2024-05-05 09:23:23
  • Golang加权轮询负载均衡的实现

    2024-02-01 04:41:57
  • 对numpy数据写入文件的方法讲解

    2022-01-24 21:09:31
  • Python 必须了解的5种高级特征

    2023-09-27 23:00:16
  • dubbo中zookeeper请求超时问题:mybatis+spring连接mysql8.0.15的配置

    2024-01-13 21:40:23
  • python使用fork实现守护进程的方法

    2021-08-27 00:37:50
  • 简单谈谈MySQL数据透视表

    2024-01-25 05:42:07
  • asp之家 网络编程 m.aspxhome.com