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来提供对外公开的接口,让外部自由选择字典转模型的方法。

 

 

 

 

相关文章
|
4月前
|
安全 Linux 虚拟化
Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统
Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统
259 3
Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统
|
4月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
259 0
|
11月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2666 1
|
8月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
427 61
|
5月前
Vite使用svg-企业级开发(支持本地svg和网络svg渲染)
本教程介绍如何在Vite项目中集成SVG图标插件。首先安装`vite-plugin-svg-icons`,配置插件指向SVG图标目录,并注册全局组件。接着创建SVG图标组件,支持内部图标与外部图片展示。通过简单配置,即可在页面中灵活使用各类SVG图标,提升开发效率。
272 0
|
8月前
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
8月前
|
监控 安全 网络协议
恶意软件无处逃!国内版“Manus”AiPy开发Windows沙箱工具,进程行为+网络传输层级监控! 头像 豪气的
NImplant.exe 是一款后渗透测试工具,可实现远程管理与持久化控制。其优点包括无文件技术、加密通信和插件扩展,但也存在被检测风险及配置复杂等问题。为深入分析其行为,我们基于 aipy 开发了 Windows 沙箱工具,针对桌面上的 NImplant.exe 进行多维度分析,涵盖进程行为、网络连接(如 TCP 请求、目标 IP/域名)、文件控制等,并生成传输层监控报告与沙箱截图。结果显示,aipy 工具响应迅速,报告清晰易读,满足分析需求。
|
11月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
404 12
|
11月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
420 15
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
316 17

热门文章

最新文章