繁体   English   中英

Xalan XSLT流HTML输出到浏览器

[英]Xalan XSLT Stream HTML output to browser

我们正在使用Xalan XSLT进行XSL转换以生成HTML输出,即XML + XSL = HTML。

以下是代码。

out=response.getOutputStream();
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer()
transformer.transform(new StreamSource(in), new StreamResult(out));

我不希望整个转换在数据显示在浏览器上之前完成。 我希望具有HTML输出的StreamResult能够开始向浏览器发送数据,因为它确实在各个XML节点上执行了xsl转换/ XSL应用模板,从而使用户对浏览器正在生成的东西有印象,因为这是可能的使报告XML很大。

我该如何实现? Xalan XSLT支持吗? 是否有其他XSLT解析器支持它。

非常感谢您的建议。

简短的答案是“否”,使用Xalan不可能可靠地实现这一目标。

编辑 :但是,有可能与撒克逊人的扩展-看看他们。

至于更长的答案,XSLT处理器的流功能已经取得了一些进展,但是结果似乎还无法预测。 例如,请参见以下链接: http : //www.balisage.net/Proceedings/vol5/html/Kay01/BalisageVol5-Kay01.html ,以讨论在Saxon中实现流式传输的尝试。

假定XSLT 3.0建议书将包含以下问题:

对该语言版本进行更改的主要目的是使转换能够以流模式执行,在这种模式下,源文档和结果文档都不会完全保存在内存中。

有关更多信息,请参见http://www.w3.org/TR/xslt-30/ 不过,这只是一个工作草案。

编辑 :特别是对于Xalan的流,Michael Kay写道:

Xalan中的增量转换实际上并没有阻止它将整个源文档构建为内存中的树。 它所做的只是允许在转换过程中并行构建树。 如果您想进行流媒体转换,那么Saxon-EE是您唯一可行的选择。 [...]

这取自增量/流XSLT转换? StreamSource 2012年。似乎StreamSource确实不是流媒体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM