Java 中的高效 XSLT 管道(或将结果重定向到源)
我有一系列XSL 2.0样式表,它们相互馈送,即样式表A的输出馈送B馈送C。
最有效的方法是什么?重新表述的问题是:如何有效地将一种转换的输出路由到另一种转换中。
这是我的第一次尝试:
@Override
public void transform(Source data, Result out) throws TransformerException{
for(Transformer autobot : autobots){
if(autobots.indexOf(autobot) != (autobots.size()-1)){
log.debug("Transforming prelim stylesheet...");
data = transform(autobot,data);
}else{
log.debug("Transforming final stylesheet...");
autobot.transform(data, out);
}
}
}
private Source transform(Transformer autobot, Source data) throws TransformerException{
DOMResult result = new DOMResult();
autobot.transform(data, result);
Node node = result.getNode();
return new DOMSource(node);
}
如您所见,我正在使用DOM来坐在转换之间,尽管它很方便,但它在性能方面不是最佳的。
有没有简单的方法可以路由说,路由SAXResult到SAXSource?StAX解决方案将是另一种选择。
我知道像XProc这样的项目,如果你还没有看过,这是非常酷的,但我不想投资整个框架。