
发现问题
在MyBatis中使用>,> =,<,<=时,无法解析配置XML文件,并报告错误.
此问题不是mybatis的问题,而是由xml的语法引起的. 因为我们添加“ <”或“>”来人为破坏XML语法结构,所以会出现问题.
原因是: XML解析器通常解析XML文档中的所有文本. 解析XML元素时,其标签之间的文本也将被解析:
处理方法
方法一:
使用转义字符替换原始字符.
XML中有5个预定义的实体引用:
![]()
严格来说,在XML中只有字符“ <”和“&”是非法的. 省略号,引号和大于号是合法的,但是用实体引用代替它们是一个好习惯.
![]()
例如
![]()
在这里我列出了HTML / XML中转义字符的比较表
常用转义字符列表
![]()
ISO 8859-1(Latin-1)字符集
![]()
符号,数学符号和希腊字母
![]()
重要的国际商标

![]()
为什么要使用转义字符串?
HTML / XML中的
>,&等具有特殊含义(<,>,用于链接标记,&用于转义),不能直接使用. 这些符号未显示在我们最终看到的网页上. 如果我们想在网页上显示这些符号怎么办?
这是关于HTML转义字符串(转义序列).
转义序列也称为字符实体. 在HTML中,定义转义字符串的原因有两个: 第一个原因是诸如“ <”和“>”之类的符号已用于表示HTML标签,因此不能将它们直接用作文本中的符号. 为了在HTML文档中使用这些符号,您需要定义其转义字符串. 当解释器遇到这样的字符串时,它将其解释为真实字符. 输入转义的字符串时,请严格遵循大写规则. 第二个原因是ASCII字符集中没有定义某些字符,因此您需要使用转义字符串来表示它.
转义字符串的组成
转义序列,即字符实体(Character Entity)分为三个部分: 第一部分是“&”号,在英语中称为“&”号;第二部分是实体名称(Entity)或#加实体(Entity)编号;第三部分是分号.
例如,要显示小于号(<),可以编写<或<.
使用实体名称的优势更容易理解. 当您查看lt时,您可能会猜测它的含义小于,但其缺点是并非所有浏览器都支持最新的实体名称. 实体编号可以由各种浏览器处理.

提示: 实体名称(Entity)区分大小写.
备注: 同一符号可以用两种方式引用: “实体名称”和“实体编号”. “实体名称”的优点是易于记忆,但不能保证所有浏览器都能顺利识别它. “实体编号”没有这种担心,但是记住它确实很不方便.
如何显示空格?
在通常情况下,HTML会自动切断多余的空格. 无论您添加多少空间,它都被视为一个空间. 例如,如果您在两个单词之间添加10个空格,则HTML会剪切9个空格sql 特殊字符 @,但只能是1个. 为了在网页上添加空格,您可以使用来表示空格.
方法二:
采用XML CDATA
解析器将解析XML文档中的所有文本. 解析器将仅忽略CDATA部分中的文本.
CDATA简介
术语CDATA是指不应由XML解析器解析的文本数据(未解析的字符数据).
在XML元素中sql 特殊字符 @,“ <”和“&”是非法的.

“ <”将产生错误,因为解析器会将这个字符解释为新元素的开头.
“&”也会产生错误,因为解析器会将字符解释为字符实体的开头.
某些文本(例如JavaScript代码)包含许多“ <”或“&”字符. 为了避免错误,可以将脚本代码定义为CDATA.
解析器将忽略CDATA部分中的所有内容.
CDATA节以“ <![CDATA [”,并以“]]>”结尾:
注意:
CDATA部分不能包含字符串“]]>”. 嵌套的CDATA部分也不允许.
CDATA节末尾的“]]>”不能包含空格或换行符.
例如:
SELECT * FROM TEMP WHERE created_at <![CDATA [> =]]>#{createdAt}
结束
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-275018-1.html
#杨洋2015金投赏##杨洋轻奢young#羊毛携手杨洋
内抓汉奸
我是行星饭