如果可能,我想执行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抛出异常或收集这些错误? 没有在网上找到任何有价值的信息......
答案 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);
然后访问收集器中的错误。
希望它有所帮助!