解析XML文件时,Stax会产生错误:
Unicode(0xb)错误 - 在文档的元素内容中找到了无效的XML字符(Unicode:0xb)。
只需点击下面的链接,其中xml行的特殊字符为“VI”。它不是一个字母字符:当你尝试将它复制并粘贴到记事本中时,你会将它作为一些符号。我尝试使用Stax解析它。它显示出上述错误。
请有人能给我一个解决方案吗?
提前致谢。
答案 0 :(得分:3)
根据XML W3C Recommendation,XML文件中不允许使用0xb:
角色范围 [2] Char :: =#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] / *任何Unicode字符,不包括代理块,FFFE和FFFF。 * /
严格来说,您的输入文件不是XML文件。
答案 1 :(得分:3)
每当无效的xml字符出现xml时,就会出现这样的错误。当你在记事本++中打开它时,它看起来像VT,SOH,FF这些都是无效的xml字符。我使用的是xml版本1.0,我在通过模式
在数据库中输入之前验证了文本数据Pattern p = Pattern.compile("[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD\u10000-\u10FFF]+");
retunContent = p.matcher(retunContent).replaceAll("");
它将确保在xml
中不会输入无效的特殊字符