1

我正在做一些来自 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。

4

0 回答 0