报错提示:The content of elements must consist of well-formed character data or markup
因为语句中有一个小于号“<”,在XML中,会被当成一个页面元素来解析,不会处理为mysql的SQL语句的组成部分,修改如下:
1、在xml的sql语句中,不能直接用大于号、小于号要用转义字符
如果用小于号会报错误如下:
org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
解决办法:
1,转义字符
|
< |
< |
小于号 |
|
> |
> |
大于号 |
|
& |
& |
和 |
|
' |
’ |
单引号 |
|
" |
" |
双引号 |
例如: state <= 3 则改成 state <= 3
2、使用<![CDATA[]]>标记
注意:<![CDATA[ ]]>标记的sql语句中的<where> <if>等标签不会被解析
<![CDATA[
state <= 3
]]>
这样,将会把SQL语句中与XML页面元素相同的元素屏蔽,是的XML不将其解析为XML的元素,从而生成正确的SQL语句。
本文介绍了解决XML文件中因包含特殊字符而引发的解析错误的方法,提供了两种有效解决方案:一是使用转义字符替换;二是利用CDATA段落标记进行处理。
304

被折叠的 条评论
为什么被折叠?



