侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

XML CDATA是什么?

技术  /  管理员 发布于 7年前   170

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

Only text inside a CDATA section will be ignored by the parser.
只有CDATA部分的文本会被解析器忽略

Parsed Data
被解析的数据
XML parsers normally parse all the text in an XML document.
XML解析器通常会解析XML文档里的所有文本

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

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

<message>This text is also parsed</message>

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

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

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

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

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

如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代码:

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

为了避免出现这种情况,必须将字符"<" 转换成实体,象下面:

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

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

< < 小于号
> > 大于号
& & 和
' ' 单引号
" " 双引号

实体必须以符号"&"开头,以符号";"结尾。
注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。

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

如果文本包含了很多的"<"字符和"&"字符――就象程序代码一样,那么最好把他们都放到CDATA部件中。

一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束:

<script><![CDATA[function matchwo(a,b){if (a < b && a < 0) then{return 1}else{return 0}}]]></script>

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

CDATA注意事项:
1.CDATA部件之间不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,将很有可能出错哦。

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

<![CDATA[ ]]>是什么意思???
=================================================

标明是纯文本的,没有这个的话 <  >  & 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档。
可以避免未预料的特殊符号导致XML解析出错。

c#涉及到关于XML的CDATA和验证有效性的问题
我刚开始学习XML的东西,这里面我遇到一个叫做CDATA的段。这里面的解释是在CDATA里面的所有东西都会被解析器忽略我不清楚这是什么意思。用简单的话来说就是CDATA什么时候用,这里面的东西有什么用。如果用这个了,会产生什么样子的结果。
还有就是XML有效性的验证。这个是什么意思,为什么要验证有效性呢,一般怎么验证呢,方法如何?我看书上说有DTD和XML Schema的两个方法,如何用,有什么区别呢?
问题虽然多了点,但是就是两个主要的问题。希望知道的大侠帮帮小弟,用通俗简单一点的话告诉我。万分感谢。
==================================================

当你用FLASH和xml结合做网站应用程序时,例如让人自由输入姓名时,人们可以输入一些符号,例如∶"<"、">"、"/"、"?"等,当生成XML时,会破坏了XML结构,使数据中断。

这就要用XML CDATA

在XML文档中的所有文本都会被解析器解析。

只有在CDATA部件之内的文本会被解析器忽略。

<![CDATA[ ]]>是什么意思?~

从数据库里读取数据生成XML文件,加个“<![CDATA[    ]]>“是什么意思?
Response.Write "<body><![CDATA["
Response.Write rs("message")
Response.Write "]]></body>"
============================================
标明是纯文本的,没有这个的话 <  >  & 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档。

可以避免未预料的特殊符号导致XML解析出错。

PCDATA和CDATA的区别究竟是什么呢?
=============================================
PCDATA表示已解析的字符数据。
   CDATA是不通过解析器进行解析的文本,文本中的标签不被看作标记。
   CDATA表示里面是什么数据XML不会解析.比如可能是下面的一段

  <![CDATA[     if(a>b){     System.out.println(a);   }   ]]>

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


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

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


  • 上一条:
    XML五则技巧总结
    下一条:
    XML经典问答
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客