2013-02-19 33 views
0

我們使用camel xslt組件來轉換xhtml文件。 但是爲了轉換文件,使用的XMLReader從w3c網站下載xhtml dtd。使Camel xslt組件使用xml目錄來解析DTD

是否可以告訴xslt組件將xml讀取器配置爲使用本地版本(例如使用xml目錄)?

+0

這也在這裏討論:http://camel.465427.n5.nabble.com/Make-xslt-component-not-to-validate-dtd-s-or-use-local-copy-tp5727789。 HTML – 2013-02-20 05:10:26

回答

0

我找到了一種方法,使用處理器,使用CatalogResolver創建XMLReader,並將使用此xmlReader的SAXSource放入交換器。

@Override 
public void process(Exchange exchange) throws Exception { 
    InputStream inputStream = exchange.getIn().getBody(InputStream.class); 

    XMLReader xmlReader = XMLReaderFactory.createXMLReader(); 
    xmlReader.setEntityResolver(new CatalogResolver()); 
    exchange.getIn().setBody(new SAXSource(xmlReader, new InputSource(inputStream))); 
} 

xsltComponent使用的Transformer將使用此xmlReader。