使Camel xslt组件使用xml目录来解析DTD

时间:2013-02-19 10:25:05

标签: apache-camel

我们使用camel xslt组件来转换xhtml文件。 但是为了转换文件,使用过的XMLReader从w3c网站下载了xhtml dtd。

是否可以告诉xslt组件将xml阅读器配置为使用本地版本(例如使用xml目录)?

1 个答案:

答案 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。