我正在使用由 org.apache.xalan.xsltc.trax.TransformerFactoryImpl 实现的 TransformerFactory 从 XSL 转换文件生成编译的 .class 文件(Translet)。
不幸的是,尽管我搜索了几个小时,但还是找不到如何在 XML 转换中使用这些 translet 类的方法。
您可以提供任何代码示例或参考文档吗?因为这个文件不充分而且复杂。谢谢。
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 具有相同的调用签名。因此,您可以将转换器对象交换为自定义对象(或将转换器对象保存在内存中以供重用)
希望有帮助