0

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

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

4

1 回答 1

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。

于 2013-05-24T09:07:16.247 回答