1

我正在尝试解析一个 100KB XML 文件,它在 Java 中具有 1 级层次结构,尤其是 J2ME。问题是 XML 文件的解析占用了超过 1MB,尽管它的大小为 100KB,这导致了 OOME。

解析 XML 在内存中占用 10 倍以上大小是否正常?还是解析器有问题?

如果是正常的,有没有其他方法可以做到这一点?我正在考虑使用 JSON 代替,或者只是遍历一个普通的文本文件,因为 XML 只有 1 级层次结构,并且它的分区是相同的。

4

1 回答 1

1

你是如何解析它的?使用DOM读取它会将整个对象模型加载到内存中,而使用SAX解析器会一点一点地读取它并为每个元素、文本节点等调用您的代码。这意味着它将消耗更少的空间,因为它不存储任何东西,你都可以控制你录制的内容。

于 2012-11-27T10:10:10.367 回答