簡體   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