做项目的时候,要加入选择开始日期结束日期然后根据日期范围删选数据显示出来的功能,于是我在mybatis的Mapper xml文件中使用where语句写了形如:
select * from t_stuff where time < #{startTime} and time > #{endTime}
的语句。
然后居然报错了,错误如下:
The content of elements must consist of well-formed character data or markup.
这个错误的意思是,不是一个格式良好的xml
也就是我们的书写格式有误,原来是因为编译器自动把sql语句中的小于号当成了开始标签,那就当然会报错了,我们只要改成如下这样:
select * from t_stuff where time > #{endTime} <![CDATA[ and time < #{startTime} ]]>
就OK了 !
解决:
使用<![CDATA[ <= ]]>包住大于小于尖括号,使大于小于符号不被当成标签标识读取而报错。
XML 元素必须遵循以下命名规则:
- 名称可以含字母、数字以及其他的字符
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字符 “xml”(或者 XML、Xml)开始
- 名称不能包含空格
出现The content of elements must consist of well-formed character data or markup这个错误肯定是你的Xml文件有问题,仔细查看下即可。
比如 < pp>22 名称中包含了空格