Android:为什么使用 XMLReader?

发布于 2024-11-02 01:18:07 字数 506 浏览 0 评论 0原文

我是否应该将 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。

Is there any reason why I should use a XMLReader with the SAXParser? I'm seeing this kind of usage quite a lot:

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

I always use the parser this way:

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

Any particular reason? Just wondering because my way is shorter, and I don't really see why I should use a XMLReader.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百变从容 2024-11-09 01:18:07

所以来回答这个问题。

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

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

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

请注意来自 SAX 自己的页面的阅读内容:

so to answer the question.

People using XMLReader are assuming that there is enough memory to store the file as a tree object and be able to traverse it at Log(n) time for searching.

On the other hand using SAX straight would mean you are using a event based plugin which would be in n time, but should leave a much less memory foot print.

It's a choice between space and speed.

note the reading about this from SAX's own page:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文