Java 如何解决jdom2库中的非法数据异常?

Java 如何解决jdom2库中的非法数据异常?,java,xml,encoding,jdom,jdom-2,Java,Xml,Encoding,Jdom,Jdom 2,我正在使用jdom 2.0.6版本,收到以下非法数据异常: Error in setText for tokenization: 调用setText()方法时失败 “文本”中的某些字符似乎不被接受。举两个例子: Originally Posted by Yvette H( 45) Odd socks, yes, no undies yes, no coat yes, no shoes odd. In fact you just have to escape your text which c

我正在使用jdom 2.0.6版本,收到以下非法数据异常:

Error in setText for tokenization: 
调用setText()方法时失败

“文本”中的某些字符似乎不被接受。举两个例子:

Originally Posted by Yvette H( 45) Odd socks, yes, no undies yes, no coat yes, no shoes odd. In fact you just have to escape your text which contains illegal characters with CDATA :

Element text = new Element("Text");
text.setContent(new CDATA(doc.getText()));

最初由Yvette H(45)Odd socks发布,是的,没有内衣是的,没有外套是的,没有鞋子是的 事实上,您只需使用CDATA转义包含非法字符的文本:

String text = doc.getText();
int hex = 0x2;
text += (char) hex;
相反的操作(读取CDATA转义的文本在JDOM2中是透明的,您不必重新转义)

对于我的测试,我通过从十六进制值0x2创建一个非法字符,在文本末尾添加了一个非法字符,如下所示:


事实上,您只需使用CDATA转义包含非法字符的文本:

String text = doc.getText();
int hex = 0x2;
text += (char) hex;
相反的操作(读取CDATA转义的文本在JDOM2中是透明的,您不必重新转义)

对于我的测试,我通过从十六进制值0x2创建一个非法字符,在文本末尾添加了一个非法字符,如下所示:


嗨,我也有同样的问题。我不认为这直接与编码有关,而是与org.jdom2.Verifier#checkCharacterData中所说的XML中的非法字符有关。我将根据您的需要进行检查,但在我的情况下,我将尝试自动定位非法字符并将其从文本中删除,直到checkCharacterData(字符串文本)返回null。您好,我也有同样的问题。我不认为这直接与编码有关,而是与org.jdom2.Verifier#checkCharacterData中所说的XML中的非法字符有关。我将根据您的需要进行修改,但在我的情况下,我将尝试自动定位非法字符并将其从文本中删除,直到checkCharacterData(字符串文本)返回null。