如何在xslt转换期间处理org.apache.xml.utils.WrappedRuntimeException?

时间:2012-08-08 12:50:25

标签: java xml xslt

如果可能,我想执行xslt转换并处理所有错误。但是这段代码

        transformer = factory.newTransformer(xslt);

不会抛出异常,但会在控制台后面打印:

Неизвестный ИД системы; Номер строки 7; Номер столбца 40;        org.apache.xml.utils.WrappedRuntimeException: Переменная site_name не найдена

(in English this means Unknown ID system line number 7, column number 40;   org.apache.xml.utils.WrappedRuntimeException: site_name variable was not found) 

如何在函数完成后强制newTransformer抛出异常或收集这些错误? 没有在网上找到任何有价值的信息......

1 个答案:

答案 0 :(得分:1)

我不确定抛出异常,但您可以使用ErrorListener收集它们。 这些方面的东西:

class ErrorCollector implements ErrorListener {

    private List<TransformerException> errors = new ArrayList<TransformerException>();

    @Override
    public void error(TransformerException exception) throws TransformerException {
        errors.add(exception);
    }

    ...
}

(代码不完整,但我想你得到的照片)

然后将其添加到您的工厂:

ErrorCollector errorCollector = new ErrorCollector();
factory.setErrorListener(errorCollector);

然后访问收集器中的错误。

希望它有所帮助!