0
我們使用camel xslt組件來轉換xhtml文件。 但是爲了轉換文件,使用的XMLReader從w3c網站下載xhtml dtd。使Camel xslt組件使用xml目錄來解析DTD
是否可以告訴xslt組件將xml讀取器配置爲使用本地版本(例如使用xml目錄)?
我們使用camel xslt組件來轉換xhtml文件。 但是爲了轉換文件,使用的XMLReader從w3c網站下載xhtml dtd。使Camel xslt組件使用xml目錄來解析DTD
是否可以告訴xslt組件將xml讀取器配置爲使用本地版本(例如使用xml目錄)?
我找到了一種方法,使用處理器,使用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。
這也在這裏討論: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