我有一系列相互馈送的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);
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用DOM来处理转换之间,虽然它很方便,但它并不是非最佳性能.
是否有任何简单的方法可以说,将SAXResult路由到SAXSource?StAX解决方案将是另一种选择.
我知道像XProc这样的项目,如果你还没有看过,这是非常酷的,但我不想投资整个框架.