我想执行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引发异常或收集这些错误?
尚未在网上找到任何有价值的信息...
最佳答案
我不确定会引发异常,但是可以使用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);
然后访问收集器中的错误。
希望能帮助到你!
关于java - 在xslt转换期间如何处理org.apache.xml.utils.WrappedRuntimeException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11864917/