Java 从WS-answer XML生成PDF时使用无效的XML字符(Unicode:0x2)
我正在做一些来自xml的报告,它来自WS。报告应该是PDF格式的,所以我选择了fop库。当我试图从xml生成报告时,它位于我的计算机上的xml文件中,一切正常。 当我在Web服务器上调用此方法时,问题就开始了。我对这一行有异议:Java 从WS-answer XML生成PDF时使用无效的XML字符(Unicode:0x2),java,apache-fop,Java,Apache Fop,我正在做一些来自xml的报告,它来自WS。报告应该是PDF格式的,所以我选择了fop库。当我试图从xml生成报告时,它位于我的计算机上的xml文件中,一切正常。 当我在Web服务器上调用此方法时,问题就开始了。我对这一行有异议: transformer.transform(src, res); 例外情况是: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x2) was found in the elemen
transformer.transform(src, res);
例外情况是:
org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x2) was found in the element content of the document.
首先是Unicode:0x1a字符,但我使用以下函数对其进行了剪切:
private static String stripNonValidXMLCharacters(String in) {
if (in == null || ("".equals(in))) {
return null;
}
StringBuffer out = new StringBuffer(in);
for (int i = 0; i < out.length(); i++) {
if (out.charAt(i) == 0x1a) {
out.setCharAt(i, '-');
}
}
return out.toString();
}
没用
我使用的是fop版本0.95。您是否正在尝试处理IBM Rational RequisitePro中的某些内容?您是否找到了解决此问题的方法?是的,这是我愚蠢的错误,我只是在代码后添加了代码,其中包括西里尔字体,它使用了此代码。
else if (out.charAt(i) == 0x2) {
out.setCharAt(i, '-');
}