java - Android 的替代 XML 解析器实现

标签 java android xml parsing

除了内置的 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/

相关文章:

java - 需要 mutator 方法我该怎么做

javascript - 防止 javascript 在 xml 具有空节点值时中断

javascript - SAPUI5 View 表被切断

xml - 如何在 XSD 中根据其邻居 xml 节点值验证 xml 节点值

java - 如何从非主键表的 hibernate 列表中选择数据,其中所有列的where子句数据都相同

java - 在Java 1.3中实现UncaughtExceptionHandler

java - 服务器端计时器消息发送到浏览器

java - EditText 中 TextWatcher 观察器中的 StackOverflow 错误

java - 如何从 JavaDoc 中删除 R.java

Android:是否可以有多个单独的 Canvas 层,我可以将它们合并为一个?