XML解析方式:
DOM:一次性将整个XML数据加载进内存进行解析
优点:
- 整个文档树在内存中,便于操作;
- 支持删除、修改、重新排列等多种功能;
缺点:
- 将整个文档调入内存(包括无用的节点)浪费时间和空间;
- 效率低,解析速度慢,内存占用量过高
结论:
比较适合解析小文件
SAX:从根元素开始,按顺序一个元素一个元素往下解析
优点:
- 不用事先调入整个文档,占用资源少 ,内存消耗小
缺点:
- 只能对XML文件内容进行读取,而不能在文件中进行插入、修改数据等操作;
- SAX只能从文档开始执行遍历的,并且只能遍历一次。也就是说我们不能随机的访问XML文件,只能从头到尾的将XML文件遍历一次(当然也可以中间截断遍历);
- 事件过后,若没保存数据,那么数据就丢了;
结论:
比较适合解析大文件
iOS中XML解析方案:
- 苹果原生
NSXMLParser:SAX方式解析,使用简单 - 第三方框架:
GDataXML:DOM方式解析,由Google开发,基于libxml2 (好用)
libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析
写在最后:
欢迎指正!