博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之网络数据解析(二)--XML解析简介
阅读量:7077 次
发布时间:2019-06-28

本文共 1259 字,大约阅读时间需要 4 分钟。

hot3.png

前言:本篇随笔介绍的是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更简单,更简洁。

               下载地址:

 

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

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

  小文件:GDataXML、NSXMLParser或者libxml2

 

4、NSXMLParser使用示例:

   解析过程三步走:

  

    

  

   以上示例源码百度云分享链接: 密码: byxc

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

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

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

  

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

  

  5-2、然后使用:

  

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

  

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

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

 

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

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

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

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

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

 

 

 

 

转载注明出处:,尊重劳动成果。

转载于:https://my.oschina.net/u/2363463/blog/635671

你可能感兴趣的文章
StringBuilder和StringBuffer有什么区别?
查看>>
定制MyBatis Generator输出内容
查看>>
JAVA流之管道流PipedInputStream,PipedOutputStream
查看>>
golang gopath的新用法
查看>>
Java线程中断的本质深入理解
查看>>
Git---基础(转)
查看>>
python/c++ 深拷贝与浅拷贝(转)
查看>>
mysql数据库的常见问题;
查看>>
CentOS7安装Tomcat
查看>>
动态重载与静态重载
查看>>
js循环的是数组不是对象
查看>>
tomcat 配成用 https方式访问
查看>>
How to install webcamd--安装webcamd
查看>>
js 获取当前url的参数
查看>>
[Android实例] 关于webview如何自动登录保存登录信息
查看>>
Nginx实现javaWeb项目动静分离
查看>>
面向对象编程六大设计原则
查看>>
木马各种隐藏技术全方位大批露,病毒或木马
查看>>
BitmapFactory.Options详解
查看>>
AutoLayout 使用之代码实现(VFL)
查看>>