mybatis XML文件中特殊符号报错
今天写代码时,启动时突然报了一个xml异常,于是就抽时间记录了一下这个bug的解决方案。
下面是bug:
Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 18; columnNumber: 41; 元素内容必须由格式正确的字符数据或标记组成。
大致看一下报错信息,能感觉时xml文件中sql的问题,根据报错中提示的行数,找到具体的sql,才发现sql那里报了一个红波浪线,特殊符号没有进行转义。
解决方案:
把小于符号进行转义一下,这是个特殊符号,需要进行转义,修改为<即可。
另外,mybatis中特殊符号不止这一个,其他的补上。
原符号 替换符号
< <
> >
& &
, '
" '
但是严格来说,在XML中只有”<”和”&”是非法的,其它三个都是可以合法存在的,但是,把它们都进行转义是一个好的习惯。
也可采用<![CDATA[ ]]>特殊标签,将包含特殊字符的字符串封装起来。
例如:
<TitleName><![CDATA["姓名"]]></TitleName>
浙公网安备 33010602011771号