Android:为什么要使用 XMLReader?

标签 android xmlreader saxparser

为什么我应该将 XMLReader 与 SAXParser 一起使用?我经常看到这种用法:

        sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        LoginContentHandler uch = new LoginContentHandler();
        xr.setContentHandler(uch);
        xr.parse(new InputSource(in));

我总是这样使用解析器:

        sp = spf.newSAXParser();
        DefaultHandler dh = new LoginContentHandler();
        sp.parse(in, dh);

有什么特别的原因吗?只是想知道因为我的方式更短,而且我真的不明白为什么我应该使用 XMLReader。

最佳答案

所以回答这个问题。

使用 XMLReader 的人假设有足够的内存将文件存储为树对象,并能够在 Log(n) 时间遍历它以进行搜索。

另一方面,直接使用 SAX 意味着您正在使用基于事件的插件,这将在 n 时间,但应该留下更少的内存足迹。

这是空间和速度之间的选择。

注意关于这个的阅读from SAX's own page:

关于Android:为什么要使用 XMLReader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710149/

相关文章:

android - 如何处理来自网页的 Android 轨迹球事件?

VB.Net XML文档内存管理

java - SAX 解析器 : Ignoring special characters

Android 浏览器/webview 错误?内容处置 : attachment; filename ="xyz.txt"

Android 权限 GET_ACCOUNTS 和 USE_CREDENTIALS 自动显示

android - Android构建在Bamboo上失败并显示Aapt2Exception

javascript - 在 Javascript 中循环 XML

PHP XMLReader 解析行 2 次

java - SAXParser 不从 URL 检索 XML 数据

java - 无法通过代码找到简单模式验证的元素错误声明