1

我正在尝试使用 Oracle XSLProcessor将多个 XSL 转换链接在一起。

第一个转换运行良好。第二个转换似乎也在运行,但根本不改变输出。

这是我用于第一次转换的代码。

private static XMLDocumentFragment Transform(InputStream xslt_stream, InputStream src_xml_stream) throws XSLException, MalformedURLException{
    XSLProcessor proc = new XSLProcessor();
    XSLStylesheet stylesheet = proc.newXSLStylesheet(xslt_stream);

    XMLDocumentFragment frag = proc.processXSL(stylesheet, src_xml_stream, null);

    return frag;
}

我采用该转换的输出并将其通过管道传输到第二种方法中。

private static XMLDocumentFragment Transform(InputStream xslt_stream, XMLDocumentFragment src_frag) throws XSLException, MalformedURLException{
    XSLProcessor proc = new XSLProcessor();
    XSLStylesheet stylesheet = proc.newXSLStylesheet(xslt_stream);

    XMLDocumentFragment frag = proc.processXSL(stylesheet, src_frag);

    return frag;
}

这是流程。

// get XSL input stream from ZD
xslt_stream = getFromZD(conn, "SELECTFF", zd_xslt_chain_1);

    // first overload
XMLDocumentFragment transformed = Transform(xslt_stream, xml_stream);

if (zd_xslt_chain_2 !=  null){
    // run second in transform chian
    xslt_stream = getFromZD(conn, "SELECTFF", zd_xslt_chain_2);

            // second overload
    transformed = Transform(xslt_stream, transformed);
}

我是否在做一些明显错误的事情,是否有更好的方法来运行 XSLT 链?假设我使用过 Oracle 的 XSL 处理器,因为我确实使用过。

4

0 回答 0