我们使用camel xslt组件来转换xhtml文件。 但是为了转换文件,使用过的XMLReader从w3c网站下载了xhtml dtd。
是否可以告诉xslt组件将xml阅读器配置为使用本地版本(例如使用xml目录)?
答案 0 :(得分: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。