认识<![CDATA[ ]]>

快下班了,今天总结一下对<![CDATA[ ]]>的认识,不许告诉别人,这可不是偷闲啊

假设有如下学生成绩表:

如果要求借助Ibatis在XML文件中写出分数小于72分的学生姓名,那么XML文件中相应的SQL语句为:

SELECT `name` FROM  student_score_table <![CDATA[ WHERE score < 72 ]]>

SELECT `name` FROM  student_score_table WHERE score < 72

为什么第二种方式不对呢?因为小于号在XML文件中被识别为标签的开头部分,更直白的说,小于号已经被XML规范认定为了“关键字字符”,这个时候如果坚持使用小于号就需要对其进行必要的转义,言尽于此,想必你已经猜到“<![CDATA[ ]]>”的作用了——规避与XML规范冲突的字符。

什么是CDATA

CDATA全名为character data,指不使用XML解析器解析的文本数据。在标记CDATA下,所有与XML规范冲突的关键字字符串都被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:

<![CDATA[文本内容]]>

其中文本内容中不能出现字符串“]]>”,另外CDATA不能嵌套。

时间: 2024-08-08 10:22:33

认识<![CDATA[ ]]>的相关文章

java jdom 解析CDATA内容

package com; import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.CDATA; import org.jdom.Comment; import org.jdom.DocType; import org.jdom.Document; import org.jdom.Element; import org.jdom.EntityRef; import

Spring JavaBean属性值的注入方式( 属性注入, 特殊字符注入 &lt;![CDATA[ 带有特殊字符的值 ]]&gt; , 构造器注入 )

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.or

&lt;![CDATA[]]&gt;和转义字符

被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容“<”. 此标记用于xml文档中,我们先来看看使用转义符的情况.我们知道,在xml中,”<”.”>”.”&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”<”.”>”.”&”,这样才能保存进xml文档. 在使用程序读取的时候,解析器会自动将这些实体转换回”<”.”

XML CDATA

---------  XML CDATA   -------- 在标记CDATA下,所有的标记.实体引用都被忽略 ,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: <![CDATA[文本内容]]> CDATA的文本内容中不能出现字符串"]]>",另外,CDATA不能嵌套. 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data) <script> <![CDATA[ fu

&lt;![CDATA[ ]]&gt; 的作用

在xml文件中 一些特殊字符需要去除其本意,就要用到 <![CDATA[    ]]>,,比如 ibitis的sqlmap.xml 中  要比较大小不能直接用 < 或者 > ,应该 <![CDATA[ < ]]> 这样子

&lt;![CDATA[的web使用简单说明

html.javascript会涉及到三个解析器,html解析器.xml解析器.javascript解析器.那么好了,问题来了,以上代码经常混编在一起,各自有各自的规则,终究会有冲突的,如下就是冲突. 根据W3C XHTML 1.0的规定:在XHTML中,因为<和&这两个符号有特殊意义(小于号用于标签的开始标记),所以这两个符号<和&需要转义成<和&. 当html代码中掺杂javascript代码的时候,同时javascript代码中包含了”<”字符的时候h

XML 特殊字符处理和 CDATA

在处理XML数据时,特殊字符要特殊处理,不能和节点字符混淆. 所有 XML 文档中的文本均会被解析器解析. 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略. PCDATA PCDATA 指的是被解析的字符数据(Parsed Character Data). XML 解析器通常会解析 XML 文档中所有的文本. 当某个 XML 元素被解析时,其标签之间的文本也会被解析: <message>此文本也会被解析</message> 解析器之所以这么做是因为 XM

mybatis 的&lt;![CDATA[ ]]&gt;

示例: xml文件: <!-- 获取条数 --> <select id="getCount" parameterType="Map" resultType="long"> select count(*) from orders o,user u,linkman l where o.flag=1 and o.uid=u.uid and l.lid=o.uid <if test="fdate!=null&quo

ODATA 云驱动 http://www.cdata.com/cloud/

ODATA 云驱动   http://www.cdata.com/cloud/    目前支持:ORACLE.MS SQL . MYSQL. DATADIRECT CLOUD    https://www.progress.com/products/datadirect-cloud Cloud Drivers Makes on-premise & cloud data sources easily accessible across platforms and devices. Expose l

mybatis : trim标签, “等于==”经验, CDATA标签 ,模糊查询CONCAT,LIKE

一.My Batis trim标签有点类似于replace效果. trim 属性, prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件 suffixOverrides:后缀判断的条件 比如:Java SQL语句如下, select b.* from sys_menu b where 1 = 1 <trim suffix="WHERE" suffixOverrides="AND | OR">