WS からの xml からレポートを作成しています。レポートは PDF 形式にする必要があるため、fop ライブラリを選択して作成しました。コンピューターのxmlファイルにあるxmlからレポートを作成しようとすると、すべて正常に機能します。WebServer でこのメソッドを呼び出すと、問題が発生します。私はこの行に例外があります:
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();
}
しかし、その後 (Unicode: 0x2) 文字が来ました。追加しようとしています
else if (out.charAt(i) == 0x2) {
out.setCharAt(i, '-');
}
役に立ちません。
fop バージョン 0.95 を使用しています。