android - 加载和查询大型 xml 文件 Android

标签 android sax xmlpullparser xml

我正在构建一个 Android 应用程序,我有一个 xml 文件作为我的数据源,我加载它以使用 XPath 进行查询,然后将结果加载到 ListView 中。当 xml 文件开始变大(最大 10MB)时,问题就出现了。我想这意味着我的内存力可能有问题。我想知道在不损害设备内存或浪费宝贵时间处理数据的情况下加载 xml 并在文件中进行搜索的最佳方式是什么。

这是我加载 xml 文件的时间:

InputStream isRaw = context.getResources().openRawResource(R.raw.xmlbooksource);
_xmlBookSource = new InputSource(isRaw);

我在这里使用 XPath 进行查询:

nodeResultSet = (NodeList) xpath.evaluate(xpathExpression, _xmlBookSource, XPathConstants.NODESET);

欢迎所有的建议。

最佳答案

虽然它们可以用作数据源并且可以使用 XPath 进行搜索; XML 并不是真正为这些目的而创建的,应该仅限于系统之间的数据传输。

如果您的数据源不是很小,您应该认真考虑使用像 SQLite 这样的数据库来存储和查询您的数据。

关于android - 加载和查询大型 xml 文件 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12648450/

相关文章:

android - Xml getText 返回 null - Android

java - 计数器计数不正确

android - 了解android sqlite自动增量字段

java - 文件过早结束 SAXParseException HttpServletRequest

ruby - 巨型 xml 文档的 open-uri 和 sax 解析

android - 获取stringXmlContent并写入然后保存到存储在android中sdcard中的.xml文件中怎么可能?

java - 在 Android 中使用 XMLPullParser 的 XML 嵌套标签有困难

android - 为什么我的应用程序在快速切换 fragment 时崩溃?

android - 在不同的计算机上处​​理同一个项目迫使我卸载应用程序

java - 在java中如何欺骗SAX将大块分解成小块?