当前位置: 首页 > news >正文

![CDATA[ ]] 是什么东东

今天在做项目时,在文件里写js时总是报错,后来才发现是js里的&,< 被解析了,解决方法就是在把js放在<![CDATA[  ]]>里。现在就一起来了解下<![CDATA[  ]]>是什么吧。

以下内容转自:http://www.w3school.com.cn/xml/xml_cdata.asp

 

所有 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>

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

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

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

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 部分中的所有内容。

本文转自挨踢前端博客园博客,原文链接http://www.cnblogs.com/duanhuajian/archive/2013/05/17/3083472.html如需转载请自行联系原作者


@挨踢前端

相关文章:

  • 什么是web接口
  • ubuntu下usb转串口设置
  • Python+Nginx实现邮件POP、IMAP、SMTP代理配置介绍
  • cookie setCookie sessionId
  • C# CancellationTokenSource和CancellationToken的实现
  • 制作首页的显示列表。
  • AjaxToolKit之Rating控件的使用(http://www.soaspx.com/dotnet/ajax/ajaxtech/ajaxtech_20091021_1219.html)...
  • 运行java web项目时报错:Several ports (8005, 8080, 8009) required
  • 备忘,查询信号质量的AT
  • Json学习整理
  • 将hdfs 上的文件通过shell脚本 导入到hive上面
  • 浅谈双绞线在视频监控系统中的实际应用
  • [linux] C语言Linux系统编程进程基本概念
  • Solr部署到tomcat,通过war包
  • FreeTextBox使用详解
  • 深入了解以太坊
  • JavaScript实现分页效果
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Redis字符串类型内部编码剖析
  • spring boot 整合mybatis 无法输出sql的问题
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 看域名解析域名安全对SEO的影响
  • 力扣(LeetCode)56
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 微服务核心架构梳理
  • 《码出高效》学习笔记与书中错误记录
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #{} 和 ${}区别
  • #define 用法
  • #vue3 实现前端下载excel文件模板功能
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一)u-boot-nand.bin的下载
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • . Flume面试题
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .Net(C#)自定义WinForm控件之小结篇
  • .Net的DataSet直接与SQL2005交互
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • []sim300 GPRS数据收发程序
  • [C#C++]类CLASS
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [codevs1288] 埃及分数
  • [Django 0-1] Core.Email 模块
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件