<![CDATA[ ]]>和转义字符的使用
来源:互联网 发布:笔记本电脑咋下载软件 编辑:程序博客网 时间:2024/06/13 20:23
数据的解析
在正式开始聊CDATA之前想先说说解析
XML文件在解析的时候,里面的内容也同样会被解析,例如我们在用MyBatis时,在mapper.xml中可能会用到“<”或者“>”,这样就造成了一些冲突,例如下面的代码
<select id="selectBydate" parameterType="String" resultType="user"> select * from user where create_date <= #{createDate} </select>
在这种情况下,解析器怎么去判断create_date < #{createDate}中的“<”是小于号,而不是表示一个标签的开始呢?
转义字符的处理
我们可以通过转义字符来处理XML文件中的特殊字符,常用的有:
注:复制上面的转义字符时,把“&”后面的空格去掉。有看到网上说只有小于和&是不合法的,剩下的都是合法的,但还是推荐大家写转义。
把原本应该写符号的地方用转移字符代替,以“&”开头,以“;”结尾,中间没有空格
上面那段mapper就可以写成如下形式了:
<select id="selectBydate" parameterType="String" resultType="user"> select * from user where create_date <= #{createDate} </select>
这样解析器在解析的时候就会把“<;”当做“<”来处理。
< ![CDATA[]]>的使用
有趣的是markdown也支持 < ![CDATA[]]>的使用,如果我不在<后面加上空格,他就不会显示。
上面说了转义字符,那< ![CDATA[]]> 是做什么的呢?简单来说,他和转义字符的作用差不多,他告知解析器“< ![CDATA[“文本内容”]]> ”,”[]”中的内容都是我想要的,不要解析,不通过解析器去处理,他标记了其中的字符是纯文本
上面的代码如果用< ![CDATA[]]>处理可以写成:
<select id="selectBydate" parameterType="String" resultType="user"> select * from user where create_date <![CDATA[<=]]> #{createDate} </select>
要注意的是< ![CDATA[]]>,“CDATA”是大写,且不能嵌套使用的,而且个人觉得嵌套使用也没什么意义。
在网上看到PCDATA,顺便提一下,他与CDATA的区别是什么呢?
CDATA是不交给解析器去处理,而PCDATA是交给解析器去处理。
阅读全文
0 0
- <![CDATA[ ]]>和转义字符的使用
- <![CDATA[]]>和转义字符的使用和联系
- <![CDATA[]]>和转义字符
- <![CDATA[]]>和转义字符
- <![CDATA[]]>和转义字符
- <![CDATA[]]>和转义字符
- XML中的转义字符和CDATA表示
- XML中的转义字符和CDATA部件
- XML中的转义字符和CDATA表示
- XML中的转义字符和CDATA表示
- xml中的<![CDATA[]]>和转义字符
- 转义字符的使用
- 转义字符的使用
- 转义字符的使用
- 转义字符的使用
- 转义字符的使用
- 转义字符的使用
- mybatis中的xml文件中的特殊转义字符处理(<[!CDATA[]]>的用法)
- 多线程:基本概念
- 随便写写
- ubuntu16.04 安装Sublime Text 3
- Solr搜索引擎(2)Solrj
- org.apache.spark.sql.AnalysisException: Try to map struct<>to Tuple1 异常
- <![CDATA[ ]]>和转义字符的使用
- malloc, calloc, realloc 使用及区别
- 快速排序算法C语言实现
- 【AC梦工厂】广工华工联合训练1 H
- jQuery整理
- 全民暗黑APK+IOS双端文字教程+商业手工端
- codevs 4919 线段树:区间更新,区间查询(余数)
- Android Studio创建不同分辨率的Drawable文件夹
- delete from和truncate删除的区别详解