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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义