我正在使用jdom 2.0.6版本并收到此IllegalDataException:

Error in setText for tokenization:


它在调用setText()方法时失败。

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


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

Originally Posted by Yvette H( 45) Odd socks, yes, no undies yes, no coat yes, no shoes odd. 🏻
ParryOtter said: Posted


我应该在某处还是出于其他一些原因指定编码?

最佳答案

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

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


反向操作(读取用CDATA转义的文本在JDOM2中是透明的,您不必将其转回)。

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

String text = doc.getText();
int hex = 0x2;
text += (char) hex;

10-06 13:53
查看更多