2012-11-27 88 views
1

我試圖解析與Java中的1級層次,J2ME特別是100KB的XML文件。問題是XML文件的解析超過1MB,儘管它的大小爲100KB,這導致了OOME。XML解析內存大小

這是正常的XML的解析來接管它的10倍大小的內存?或者解析器有什麼問題?

如果是正常的,是有這樣做的任何其他方式?我想也許使用JSON,或者也許只是遍歷一個普通的文本文件,因爲XML只有一層的層次結構,並且它的分區是相同的。

回答

1

你如何解析呢?使用DOM將加載整個對象模型到內存中,而使用SAX解析器會一點一點閱讀並調用你的代碼爲每個元素讀它,文本節點等。這意味着它會消耗少得多的空間,因爲它沒有存儲任何東西,並且你控制着你所記錄的東西。

+0

好,我使用的解析器Alsutton http://sourceforge.net/projects/asxmlp/我以爲是SAX解析器。我不太確定。 –