Android:为什么要使用XMLReader?

5 android xmlreader saxparser

我有什么理由将XMLReader与SAXParser一起使用?我看到这种用法非常多:

        sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        LoginContentHandler uch = new LoginContentHandler();
        xr.setContentHandler(uch);
        xr.parse(new InputSource(in));
Run Code Online (Sandbox Code Playgroud)

我总是这样使用解析器:

        sp = spf.newSAXParser();
        DefaultHandler dh = new LoginContentHandler();
        sp.parse(in, dh);
Run Code Online (Sandbox Code Playgroud)

任何特殊原因?只是想知道因为我的方式更短,我真的不明白为什么我应该使用XMLReader.

小智 5

所以回答这个问题.

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

另一方面,使用SAX直接意味着你正在使用基于事件的插件,这将是n次,但应该留下更少的内存占用量.

它是空间和速度之间的选择.

请注意SAX自己的页面中有关此内容的内容: