我正在使用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;