XML解析

XML解析_第1张图片
XML 文档形成一种树结构

XML解析方式:

DOM:一次性将整个XML数据加载进内存进行解析

优点:

  • 整个文档树在内存中,便于操作;
  • 支持删除、修改、重新排列等多种功能;

缺点:

  • 将整个文档调入内存(包括无用的节点)浪费时间和空间;
  • 效率低,解析速度慢,内存占用量过高

结论:

比较适合解析小文件

SAX:从根元素开始,按顺序一个元素一个元素往下解析

优点:

  • 不用事先调入整个文档,占用资源少 ,内存消耗小

缺点:

  • 只能对XML文件内容进行读取,而不能在文件中进行插入、修改数据等操作;
  • SAX只能从文档开始执行遍历的,并且只能遍历一次。也就是说我们不能随机的访问XML文件,只能从头到尾的将XML文件遍历一次(当然也可以中间截断遍历);
  • 事件过后,若没保存数据,那么数据就丢了;

结论:

比较适合解析大文件

iOS中XML解析方案:

  • 苹果原生
    NSXMLParser:SAX方式解析,使用简单
  • 第三方框架:
    GDataXML:DOM方式解析,由Google开发,基于libxml2 (好用)
    libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析

写在最后:

欢迎指正!

你可能感兴趣的:(XML解析)