【发布时间】:2010-03-14 21:21:40
【问题描述】:
一段时间以来,我一直在使用 SAX 解析器从各种 XML 中获取数据,但今天我正在努力解决一个新的问题,即使用大量的 XML(与以前的相比。这里大约 12k 行)里面有很多重复的项目。大多数时候,项目是块的一部分:
<content>
<item lbl="blabla">
<item lbl="blabla"/>
<item lbl="blabla"/>
</item>
<item lbl="blabla">
<item lbl="blabla"/>
<item lbl="blabla"/>
<item lbl="blabla"/>
<item lbl="blabla"/>
<item lbl="blabla"/>
<item lbl="blabla"/>
</item>
</content>
blabla 部分当然会发生变化......但是,我想保留项目的结构(它们是标题和副标题)。为此,我为每个 blabla 附加了一个开始和结束标记 <itemx>blabla</itemx>,其中 x 是项目树中的位置(1、2、3 或 4)。
稍微有问题的部分是,我创建了数千个无用的对象,而垃圾收集器在解析器之后没有时间清理,不可避免的 OutOfMemory 出现在我面前......
我不知道如何处理它;最好的技术是如果我可以获取<content></content> 的全部内容,但我不确定这是否可以使用 SAX 解析器。
欢迎任何帮助,非常感谢任何解决方案...
【问题讨论】:
标签: android parsing sax out-of-memory