我可以拆分编组阶段以生成DOM树

时间:2015-11-30 16:11:07

标签: xml dom marshalling

我必须使用Dom生成一个文件Xml。

当调用(使用4gb)方法Marshaller.marshal(Object obj,Node dom)时,我收到有关内存不足的错误。

如果我尝试使用8gb生成DOM树,它就可以工作。

您是否知道是否存在分割marshaller执行然后合并的方法?

我不能使用Stax或Sax。

1 个答案:

答案 0 :(得分:0)

唯一的方法就是分解你的对象树。分别编组那些部分部分,然后合并生成的字符串。您甚至可以手动执行XML文件的某些外层,并在生成文件时将生成的部分写出来,而不是将它们保存在内存中。

从根本上说,如果你的内存不足,那么你最好使用SAX而不是DOM。 SAX的一个主要优点就是减少了内存占用。