关于XML字符串中出现非法字符导致解析出错的问题
2018-01-04 16:15
627 查看
最近调用接口报大量错误org.apache.cxf.interceptor.Fault: Marshalling Error:
Invalid white space character (0x2) in text to output (in xml 1.1, could output as a character entity),根据提示可知出现了非法字符导致解析出错。查看日志果真如此,由于使用的是XML1.0,所以需要对报文字符串进行过滤,根据xml1.0规范https://www.w3.org/TR/REC-xml/可知xml1.0字符集范围如下Char
::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]。于是进行字符串过滤
Invalid white space character (0x2) in text to output (in xml 1.1, could output as a character entity),根据提示可知出现了非法字符导致解析出错。查看日志果真如此,由于使用的是XML1.0,所以需要对报文字符串进行过滤,根据xml1.0规范https://www.w3.org/TR/REC-xml/可知xml1.0字符集范围如下Char
::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]。于是进行字符串过滤
public static String xmlFilter(String str){ StringBuffer out = new StringBuffer(); char current; for (int i = 0; i < str.length(); i++) { current = str.charAt(i); if ((current == 0x9) || (current == 0xA) || (current == 0xD) || ((current >= 0x20) && (current <= 0xD7FF)) || ((current >= 0xE000) && (current <= 0xFFFD)) || ((current >= 0x10000) && (current <= 0x10FFFF))) out.append(current); } return out.toString(); }
相关文章推荐
- asp.net中XmlDocument解析出现出错,处理特殊字符
- xml中有特殊字符,导致解析时出错
- 关于在asp.net后台输出提示字符串的时候显示的字符提示出错的问题
- [记录]关于javac编译时出现“非法字符:/65279”的问题
- 关于c#连接Oracle数据库出现的无法解析连接字符串问题
- 关于UTF-8编码导致网页解析出现空白的问题
- 关于删除字符串中重复字符问题?解析
- 关于JavaScript解析XML的性能的问题(已解决)
- 关于-非法的xml字符
- 关于用户自定义的userbean出现无法解析的问题
- VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)
- 关于http协议接受解析中出现陌明奇妙的数字问题
- KXML2解析xml出现的问题及解决办法
- dom4j 使用xpath 解析 persistence.xml 出现xmlns后不能解析问题解决
- XML中的字符串中出现字符'&'查询失败
- 关于 Exception:Xml中的非法字符
- 关于-非法的xml字符
- Oracle9i R2 Pro*c 因为patch升级导致编译出现程序非法操作的问题
- 关于在Eclipse中启动Weblogic服务器时出现Parsing Failure in config.xml问题解决方法
- 关于字符串与字符数组的一些小问题