之前虽然一直知道存在常用的几种XML解析方式,也知道SAX的意思,但是没有深入追究过PULL跟SAX的区别。PULL跟SAX虽然都是基于事件的,但是两者最重要的区别应该是:
SAX可以认为是“PUSH“的,跟PULL相对。因为Parser在遇到特定事件源的时候会将数据传递给回调函数来处理,从这个意义上讲数据是”推送“给用户的,而PULL方式是遇到特定事件时由用户去从Parser中获取自己感兴趣的,感觉数据像是”拉“下来的。
还有一个区别是:在PULL式解析过程中(while循环里),可以退出循环;但是在SAX过程中,一旦开始解析就要解析完成。
来源:oschina
链接:https://my.oschina.net/u/77646/blog/37693