zoukankan      html  css  js  c++  java
  • iOS开发之网络数据解析(二)--XML解析简介

    前言:本篇随笔介绍的是XML解析。

    正文:

    1、XML解析方式有2两种:

    • DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件
    • SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件

    2、IOS中XML解析方案有很多种:

      2-1、第三方框架:

        libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析

        GDataXML:DOM方式解析,由Google开发,基于libxml2

      2-2、苹果原生

        NSXMLParser:SAX方式解析,使用简单

      2-3、本人基于苹果原生NSXMLParser封装好的XML解析工具

        HYXMLParser:SAX方式解析,使用比NSXMLParser更简单,更简洁。

                   下载地址:HYXMLParser

    3、XML解析方式的选择建议

      大文件:NSXMLParser或者HYXMLParserlibxml2(但是几乎不用)

      小文件:GDataXML、NSXMLParser或者HYXMLParserlibxml2

    4、NSXMLParser使用示例:

       解析过程三步走:

      

        

      

       以上示例源码百度云分享链接: http://pan.baidu.com/s/1c1oLiRu 密码: byxc

    5、关于本人封装NSXMLParser而创作的HYXMLParser使用代码示例:

      <好处:使用方便,可以面向任意类型的模型对象解析XML,复用性高,与外界高内聚低耦合>

      这里展示的示例是从我的github上HYXMLParser下载的XMLParser_3这第3个版本的XML解析工具类:

      

      5-1、先将HYXMLParse文件工具类直接拷贝你的项目中:

      

      5-2、然后使用:

      

      根据实际需求,字典转模型的方法可能用MJExtension代替KVC最合适。

      

      如果读者熟悉苹果原生的NSXMLParser,那么再来使用本人封装好的这个HYXMLParser,你会发现本人封装好的HYXMLParser很简单易用。

      同时建议刚学习XML解析的读者先熟练掌握苹果NSXMLParser解析,也就是前面第4点介绍的解析过程,再来学习使用本人的HYXMLParser

    6、简单说说本人封装好的的HYXMLParser_3的实现思路。

      6-1、将苹果原生的NSXMLParser通过代理方法SAX解析XML的方式封装在一个普通的NSObject类中。

      6-2、在代理解析方法中,因为需要不断的创建模型对象,这里我使用了NSObjectFromString方法,通过类的名字来创建类对象,然后通过类对象创建模型对象。

          这样就模型对象的类名可以通过参数NSString类型外部传入,同时实现了与模型对象的解耦,不需要import需要的模型对象的类。

      6-3、根据实际需求,可能需要MJExtension字典转模型来替代功能有限的苹果原生的KVC,所以这里用Block来提供对外公开的接口,让外部自由选择字典转模型的方法。

    转载注明出处:http://www.cnblogs.com/goodboy-heyang/p/5188410.html,尊重劳动成果。

  • 相关阅读:
    visual studio disable git
    app常见性能测试点
    App测试流程及测试点(个人整理版)
    APP测试要点
    APP端测试常见的功能点
    一文搞懂性能测试常见指标
    为什么会有生产bug?
    线上出了bug,是谁的责任?
    生产上线发现重大Bug的思考
    项目上线后出现Bug,该如何处理?
  • 原文地址:https://www.cnblogs.com/goodboy-heyang/p/5188410.html
Copyright © 2011-2022 走看看