即使堆空间高于文档大小,也会在“转换550 MB文档时”抛出Java堆空间错误。
我的代码使用
1.xsl:stylesheet of xslt transformation
2.net.sf.saxon.TransformerFactoryImpl
3.trans.transform(new StreamSource(file), result);
谢谢, 摩尼
答案 0 :(得分:0)
通常使用Saxon,源文档占用的空间大小约为词汇XML的5倍。当然,该比例可以根据文件的复杂性而变化。因此对于550Mb,分配3Gb应该足够了。在启动Java以分配足够的堆空间时使用-Xmx选项。
您接近使用传统内存转换所能完成的限制,因此您可能希望查看进行流式转换的选项。有关此信息,请参阅http://saxonica.com/documentation/#!sourcedocs/streaming