ich eine Reihe von XSL 2.0 Stylesheets, die ineinander füttern, dh die Ausgabe von Sheet A B-Feeds Feeds C.Effiziente XSLT-Pipeline in Java (oder Umleiten Ergebnisse zu Quellen)
Was ist der effizienteste Weg, das zu tun? Die umformulierte Frage lautet: Wie kann man die Ausgabe einer Transformation effizient in eine andere umlenken?
Hier ist mein erster Versuch:
@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);
}
Wie Sie sehen können, bin ich ein DOM zwischen Transformationen zu sitzen, und obwohl es bequem ist, es ist nicht optimale Leistung klug.
Gibt es eine einfache Möglichkeit zu routen, ein SAXResult an eine SAXSource zu leiten? Eine StAX-Lösung wäre eine weitere Option.
Ich kenne Projekte wie XProc, die sehr cool ist, wenn Sie noch nicht gesehen haben, aber ich wollte nicht in ein ganzes Framework investieren.
"für (Transformator autobot: autobots) {" Priceless :-) –