无法解析JAXB中的额外符号

时间:2014-08-19 12:12:21

标签: java spring jaxb jaxb2

enter image description here

在java中使用JAXB编组和解组,我无法解析图像中“This end use consumption”文本之前出现的符号。

收到以下错误。

Generic Exception being handled : Fatal error: PCDATA invalid Char value 20 at :11. 

我想跳过这种符号,我怎么能用JAXB做到这一点。

请帮忙。

2 个答案:

答案 0 :(得分:1)

您的源XML可能不是有效的XML。是否有可能通过连接文本来创建XML而无需在必要时处理转义的特殊字符?

答案 1 :(得分:0)

invaldi字符是\ x14,DC4,一个控制字符。 (我想知道,如何输入或SW实体添加它。)

根据XML W3C建议,这是字符的有效范围:

#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

这意味着必须删除所有其他控制字符(不进行转义!)。这可以通过使用简单的正则表达式过滤用户数据来完成,例如

String input = ...;
saneInput = input.replaceAll( "[\\x00-x1F&&[^\\x08\\x0A\\x0D]]+", "" );