相关疑难解决方法(0)

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);
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在使用DOM来处理转换之间,虽然它很方便,但它并不是非最佳性能.

是否有任何简单的方法可以说,将SAXResult路由到SAXSource?StAX解决方案将是另一种选择.

我知道像XProc这样的项目,如果你还没有看过,这是非常酷的,但我不想投资整个框架.

java xslt dom pipeline sax

19
推荐指数
1
解决办法
7318
查看次数

标签 统计

dom ×1

java ×1

pipeline ×1

sax ×1

xslt ×1