1

Oracle XSLProcessorを使用して、複数の XSL 変換を連鎖させようとしています。

最初の変換は正常に実行されます。2 番目の変換も実行されているように見えますが、出力はまったく変更されません。

これは、最初の変換に使用しているコードです。

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;
}

その変換の出力を取得し、2 番目のメソッドにパイプします。

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