2

我正在使用由 org.apache.xalan.xsltc.trax.TransformerFactoryImpl 实现的 TransformerFactory 从 XSL 转换文件生成编译的 .class 文件(Translet)。

不幸的是,尽管我搜索了几个小时,但还是找不到如何在 XML 转换中使用这些 translet 类的方法。

您可以提供任何代码示例或参考文档吗?因为这个文件不充分而且复杂。谢谢。

4

1 回答 1

1

XSLT 中的标准转换如下所示:

    public void translate(InputStream xmlStream, InputStream styleStream, OutputStream resultStream) {
        Source source = new StreamSource(xmlStream);
        Source style = new StreamSource(styleStream);
        Result result = new StreamResult(resultStream);

        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer t = tFactory.newTransformer(style);
        t.transform(source, result);
    }

因此,假设您不使用 Transformer 工厂,而是使用现成的 Java 类(这是一个额外的维护难题,并且不会给您带来更好的性能,因为您可以在初始编译后保留您的 Transformer 对象)相同的功能看起来像这样:

    public void translate(InputStream xmlStream, OutputStream resultStream) {
        Source source = new StreamSource(xmlStream);
        Result result = new StreamResult(resultStream);

        Translet t = new YourTransletClass();
        t.transform(source, result);
    }

在您的搜索中,您错过了在Google 中输入接口规范,其中第3 个链接 显示接口定义,它与 Transformer 具有相同的调用签名。因此,您可以将转换器对象交换为自定义对象(或将转换器对象保存在内存中以供重用)

希望有帮助

于 2014-04-24T07:20:14.047 回答