XML CDATA(转载之笔记)

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

关于 CDATA 部分的注释:

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

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

mybatis 中的<![CDATA[ ]]>的使用 在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<!使用sql语句其实和使用xml类似,不过需要注意的是,如果sql语句中部分语句没有被标签包裹着,如:where select,if等标签;[CDATA[ ]]>的;[CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容“<”。此标记用于xml文档中,来包含不被xml解析器解析的内容。 阅读详情

相关推荐

Java后端开发(四)-- MySql | <![CDATA[ ]]>的使用详解

mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用<![CDATA[ ..... ]]>,将包裹的内容不被解析器解析。"&"的产生错误,是因为解析器会把该字符解释为字符实体的开始。由于XML文件对于元素为"<"和"&"是非法的,不符合规则。"<"的产生错误,是因为解析器会把该字符解释为新元素的开始。指的是不应由XML解析器进行解析的文本数据。

PUYALEI的博客 2456

<![CDATA[ ]]>的简单使用

<![CDATA[ ]]>的简单使用

handsome_sai的博客 3万+

信捷XD/XL系列PLC与C#通信实战:Modbus-RTU协议详解(附完整代码)

本文详细介绍了信捷XD/XL系列PLC与C#通过Modbus-RTU协议实现高效通信的实战指南。从硬件连接到软件配置,再到核心通信功能的实现与优化,提供了完整的代码示例和工业级应用建议,帮助开发者快速构建稳定的自动化通信系统。

weixin_28292761的博客 511

mybatis(下)——<![CDATA[…]]>、动态sql语句详解、懒加载、缓存、逆向工程、纯注解操作数据库

动态sql自动删除多余有含义的字符 if标签 where标签 <![CDATA[sql语句]]> mybatis目录动态SQL一、if标签last、mybatisgenerator逆向工程 动态SQL 实际开发过程中需要使用比较复杂的sql语句,但是自己通过字符串的拼接,比较容易出现错误,那么为了解决这些问题mybatis提供了动态sql。 什么是动态sql? 使用一些标签动态拼接sql语句,mybatis可以自动删除一些多余的字符(逗号、and关键字等)、添加一些必须的字符(空格等),预防s

Today_He的博客 9177

GPU八卡A100使用INT4-W4A16量化大模型实验

本实验旨在探索在环境下,对大语言模型进行权重量化的可行性、效率与性能影响。通过采用工具集成 GPTQ 算法,实现对所有线性层的权重量化(W4A16 方案最终通过lm-eval工具在GSM8K任务上对压缩模型进行评估。

goodgood_UP的博客 1905

文件上传漏洞攻击与防范方法

文件上传漏洞攻击与防范方法 文件上传漏洞简介: 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 文件上传漏洞危害: 上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传...

m0_38103658的博客 4万+

XML中CDATA的运用

CDATA术语,主要用于标记语言(SGML和XML)中直接的但是有关联的字符数据。这个术语表明文档的某一部分是一个普通的的字符数据块而不是非字符数据或者拥有更特殊和限制结构的字符数据。 在一个XML文档或者一个经过解析的外部实体中,一个CDATA片段是一个元素内容中标记为解析器单纯地解释为文本数据的片段。一个CDATA片段只不过是表达字符数据的自动转换语法。在单独的CDATA片段中含有例...

at334289的博客 2050

10xGenomics Loupe Browser实战指南:从数据导入到细胞注释全流程解析

本文提供了10xGenomics Loupe Browser的实战指南,详细解析了从数据导入到细胞注释的全流程。作为一款强大的可视化工具,Loupe Browser能帮助研究者直观探索单细胞测序数据,通过交互式操作进行细胞选择、差异基因分析和细胞类型注释,是单细胞数据分析入门和结果验证的高效平台。

blue42的博客 453

XML指南——XML CDATA

在XML文档中的所有文本都会被解析器解析。 只有在CDATA部件之内的文本会被解析器忽略。解析数据 XML 解析器通常情况下会处理XML文档中的所有文本。 当XML元素被解析的时候,XML元素内部的文本也会被解析: <message>This text is also parsed</message> ...

weixin_30448685的博客 145

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 359

由ip地址和子网掩码求网络号、主机号、广播地址(超详细)

1、用二进制数表示IP地址   在进行计算之前,我们首先要学会十进制的IP地址怎么转换为二进制的IP地址。   给出一个例子: 十进制:172.16.25.3 二进制:10101100.00010000.00011001.00000011 1、如果两台主机的网络号相同,我们就说它们是同一网段 2、主机号的意义 - 1)主机号部分全变成1,即为该网段的广播地址 - 2)主机号部分全变成0,即为该网段的网路地址(网络号) 3、如果主机号部分为x位,则该网络能容纳最大主机数为: 2的x次方-2。减2

爱吃雪糕的小布丁的博客 9万+

RSS阅读器练习笔记————xml文件解析中CDATA及HTML字符实体的处理

本文来自http://blog.youkuaiyun.com/chenshaoyang0011转载请申明出处! 本文将介绍本人在写RSS阅读器时,解析RSS的xml文件所遇到的一些问题和解决方法。 首先简单介绍下什么是RSS:RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如文章、博客,音频或视频 的网摘。(摘自Wiki) 一个站点若提供RSS源,我们就可以从这个站点获

JamesChen 5550

【IoT】 产品设计之结构设计:如何设计产品按键

1、硅胶按键功能实现有两种接触方式 1)硅胶按键按压在DOME片(锅仔片)上 通常用在手机、儿童手表手机、防水手机等防水设备上。 2)硅胶按键增加导电基,一种黑色的导电碳粒,实现回路导电 通常用在遥控器、电脑键盘、特殊设备上。 两种方式结构设计原理是一样的,按键的固定与配合间隙与行程要确保好。 2、硅胶遥控器按键的结构方式(导电基) 按键帽为大颗粒实心的,触点为黑色导电基,通过压注成型融合为一体,那么这种按键结构设计时需要注意那些呢? 最主要的是按键按压回弹的手感,由于没有DOME片实现

产品线负责人 8664

XML 学习笔记 5:PCDATA 和 CDATA

本文章内容转载自。

走马观花 554

Python爬虫实战:手把手教你园林植物分类全维度字典自动化采集实战!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 388

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java cdata类,分析XML中的CDATA类型在RSS中的使用

除经特别注明外,本站文章版权归JScud Develop团队或其原作者所有.转载请注明作者和来源.scud(飞云小侠)欢迎访问 JScud Develop根据XML中CDATA类型的规范可以知道:"&"和"" 如果出现在"]]>" 的内容而不是表示结束时,必须被转义为>但是这样就存在一个问题,如果我需要输入"]]>",正确的处理是保存为"]]>",但是如...

weixin_32818781的博客 651

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SOAPUI参数中xml中CDATA包含问题

<![CDATA[ <Request> <CardNo>000002629518</CardNo> <SecrityNo/> <BankTradeInfo> <![CDATA[ <Response><TradeCode>4200</TradeCode><...

decuisi4198的博客 1360

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

XML <![CDATA[]]>

被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,<![CDATA[<]]>表示文本内容“<” ,在xml中,”<”、”>”、”&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”&lt;”、”&gt;”、”&amp;”,这样才能保...

weixin_30340353的博客 318

区分XML中CDATA和#PCDATA

在XML文档中, 能看到“CDATA"的地方有三处:1)在DTD中,指定标签中某个属性的类型为字符型时,使用CDATA。因为XML解析器回去分析这段字符内容,因而里面如果需要使用>, <, &, ', "这5个特殊字符,应当用对应的替代替代字符来表示(必须以&开始,以;结束)。具体如下:< - &lt; (less than)> -...

ambbzmz1276的博客 332

xml.etree.ElementTree对CDATA的输出

xml.etree.ElmentTree不支持CDATA 的输出,但是支持Comment的输出。由于在项目中需要输出带有CDATA块的XML文本,参考Comment的做法,修改ElmentTree中的_serialize_xml方法中。实现如下:import xml.etree.ElementTree as ETdef CDATA(text=None): element...

weixin_30265103的博客 767

PHP处理XML文档,没有CDATA部分数据处理

  在博客备份时,导出了所有文章,导出是xml文档,文章内容在CDATA部分。   这里介绍下XML中CDATA:   所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。   术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。在 XML 元素中,"...

347

雷林鹏分享: XML CDATA

  XML CDATA   XML 文档中的所有文本均会被解析器解析。   只有 CDATA 区段中的文本会被解析器忽略。   PCDATA - 被解析的字符数据   XML 解析器通常会解析 XML 文档中所有的文本。   当某个 XML 元素被解析时,其标签之间的文本也会被解析:   This text is also parsed   解析器之所以这么做是因为 XML 元素可包...

weixin_30828379的博客 105

mybatis的xml文件中的CDATA的使用

mybatis的xml文件中的CDATA的使用 <!--查询列表--> <select id="queryListPage" parameterType="java.util.Map" resultType="java.util.Map"> select * from user wh...

weixin_30726161的博客 536

CDATA为何物?

CDATA的解释   1. 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data),XHTML也是如此。 CDATA 部分中的所有内容都会被解析器忽略。   2. CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束。 CDATA 部分不能包含字符串 "]]>"。也不允许嵌...

weixin_34146805的博客 892

PCDATA和CDATA的区别

查了一下w3school,是这样说明的: PCDATA PCDATA 的意思是被解析的字符数据(parsed character data)。 可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。 PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。 文本中的标签会被当作标记来处理,而实体会被展开。 不过,被解析的字符数据不应当包含

1591
上一篇: 介绍一个可以运算复杂数据运算的js库
下一篇: CAS 3.1 单点退出
_frank
博客等级 码龄17年 8粉丝 403原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值