如何解决jdom2库中的IllegalDataException?

时间:2017-06-17 15:20:58

标签: java xml encoding jdom jdom-2

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

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

1 个答案:

答案 0 :(得分:0)

事实上,您只需要使用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;