SAX解析器与XMLPull解析器

Nel*_*rez 21 xml android saxparser xmlpullparser

我理解SAX解析器的工作方式与XMLPull解析器之间的区别.事实上这里有一个很好的解释:

http://www.firstobject.com/xml-reader-sax-vs-xml-pull-parser.htm 这篇文章有点以.NET为中心,但概念适用.

虽然我同意作者的观点,即Pull解析器更容易使用,但我很困惑哪种类型的解析器在哪种情况下会更好.如果有人可以放弃任何光线并指出我更多的阅读,我会很感激.

谢谢.

Rob*_*oli 18

我发现他们都很糟糕.(我有一个更好的解决方案建议)

您应该使用基于简单注释的XML库.我喜欢它并将其用于我的所有项目.如果您通读了本教程,那么我认为您会发现它能够以更快的速度和更少的代码完成您想要的所有工作.(因此不易出错)在内部,库使用那些你要求解决繁重的解析器.

然后,如果需要,您可以阅读我的博客文章,将其包含在Android项目中.(它将适用于Android的每个版本,从至少1.5上来,这对每个人来说基本上都是)


var*_*waj 11

这完全取决于情况,例如,如果xml文件真的很大,你不能选择DOM解析器,因为他们将首先将文件带入内存然后它将被解析,我发现解析大小为n的文件需要7n内存空间.在这种情况下,您应该选择SAX解析器,并消耗更少的内存.

第二种情况是当文件不是很大时,在这种情况下你可以使用XML pull解析器,因为在这里你可以完全控制xml,你可以在SAX中无法实现的任何地方跳过解析周期.因此,如果您要查找的标记是文件中的第一个标记,那么为什么要使用整个文件.

因此,据我所知,如果你只考虑使用小型文件的速度,请使用XML pull解析器,如果文件很大并且你想要解析它,那么请使用SAX.