2012-08-08 15 views
0

如果可能,我想執行xslt轉換並處理所有錯誤。但是這段代碼如何在xslt轉換過程中處理org.apache.xml.utils.WrappedRuntimeException?

 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

我不知道拋出異常,但你可以用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); 

並獲得了之後收集器中的錯誤。

希望它有幫助!