除了内置的 kXML pull 解析器之外,我正在寻找适用于 Android 的 XML 解析解决方案。我正在尝试解析从服务器下载的大型 (4MB+) XML 文件,并且 kXML 解析器在解析时尝试分配 1MB+ 字节数组后抛出 OutOfMemory 错误。一个好的流式 XML 解析器不应该分配这么大的数组!!
Android 中使用的 kXML v2 解析器似乎已有 7 年历史。我想尝试其他方法看看它是否能解决我的问题,最好是实现相同 org.xmlpull.v1 接口(interface)的方法,因为我的代码已经针对它编写了。 Woodstox 看起来是个不错的选择,它有一个 XMLPullParser 适配器,但显然 Android 工程师很难包含 javax.xml.streaming 库。我看到一些相当复杂的“jar-jar”解决方法,但如果有更简单的方法,我宁愿不花大量时间来弄乱 Ant。有没有其他人已经让另一个 XML 拉式解析器工作并且可以指出我?
最佳答案
在最坏的情况下,您可能会恢复到 SAX,这是内存效率最高的方法。尽管我猜这是对您的代码的重大更改。
关于java - Android 的替代 XML 解析器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912211/