我正在尝试使用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处理器,因为我这样做。