1

我想创建一个使用可能很大的 xml 文件的应用程序。它还将修改并且理想情况下能够反向遍历。

我知道有 SAX、DOM 和 XML 拉解析器。拉解析器已经出局,除非我将内存花在创建自己的对象树上,这似乎不可行。除非有另一个解析器可以做我想做的事,否则就剩下 SAX 和 DOM。非常不可能,我知道。是的,我看到了这个答案:https ://stackoverflow.com/questions/7498616/which-xml-parser-should-i-use-for-android 关于无需使用 DOM 即可拥有树状可用性的想法?

4

2 回答 2

0

解析 XML 有很多选择。但这取决于您自己的要求,您何时可以使用哪个解析器。为此,您需要了解解析器之间的基本区别。这是我提供的一些基本信息。

SAX解析器是在解析器遍历 XML 树时通知您的代码的一种解析器,您负责跟踪状态并构造任何您可能希望在解析器遍历时跟踪数据的对象。

DOM解析器读取整个文档并建立一个内存表示,您可以查询不同的元素。通常,您甚至可以构造 XPath 查询来提取特定的部分。

正如您所说,您的文件很大,而且如果您想要更快的性能,我建议您应该使用 StAX 解析器。这是链接

希望对你有帮助...

另请参阅此链接

于 2012-03-20T17:56:32.690 回答
0

大多数情况下,DOM 更适合一次加载所有 XML。但是如果 XML 非常大,那么我们应该使用 SAX 解析器,它每次都会从 XML 的开头读取标签。

如果 XML 真的很大,那么最好通过在请求中发送需求来从服务器端进行过滤,否则我们可以进行分页,这是可以建议的。

于 2012-03-20T18:09:14.507 回答