我通常在JDK(JDK 7)中使用XSLT支持進行XSLT轉換。最近我遇到了一個相當大的XML文檔,並且將XSLT轉換應用於此(甚至非常基本的轉換)會導致使用大量內存。增量/流式XSLT轉換?
我一直很小心地處理所有的流處理,但似乎JDK中的XSLT引擎(它似乎是一個修改過的Xalan)總是先在內存中建立一個DOM。顯然這不是我想要的。
現在我發現單獨提供的Xalan(從2007年開始的2.7.1版!)確實有一個用於進行增量轉換的API。所以,雖然這似乎工作,我實際上希望我的代碼運行在股票JDK上,而不告訴用戶擺弄任何背書文件夾。
在Java中執行增量式XSLT轉換的最佳方式是什麼,以便我的代碼與未修改/正版JDK安裝兼容?
更新: 這個最近更新的問題密切相關:What is the Most Efficient Java-Based streaming XSLT Processor?
嘗試此鏈接 - http://www.devx.com/xml/Article/34677/1954 - 請參閱標題爲「迭代2:分而治之JAXP XSLT轉換」一節 – kjp