iOS開發(fā)使用XML解析網(wǎng)絡(luò)數(shù)據(jù)
前言:本篇隨筆介紹的是XML解析。
正文:
1、XML解析方式有2兩種:
DOM:一次性將整個(gè)XML數(shù)據(jù)加載進(jìn)內(nèi)存進(jìn)行解析,比較適合解析小文件SAX:從根元素開始,按順序一個(gè)元素一個(gè)元素往下解析,比較適合解析大文件
2、IOS中XML解析方案有很多種:
2-1、第三方框架:
libxml2:純C語言,默認(rèn)包含在iOS SDK中,同時(shí)支持DOM和SAX解析
GDataXML:DOM方式解析,由Google開發(fā),基于libxml2
2-2、蘋果原生
NSXMLParser:SAX方式解析,使用簡單
2-3、本人基于蘋果原生NSXMLParser封裝好的XML解析工具
HYXMLParser:SAX方式解析,使用比NSXMLParser更簡單,更簡潔。
下載地址:HYXMLParser
3、XML解析方式的選擇建議
大文件:NSXMLParser或者HYXMLParser、libxml2(但是幾乎不用)
小文件:GDataXML、NSXMLParser或者HYXMLParser、libxml2
4、NSXMLParser使用示例:
解析過程三步走:
5、關(guān)于HYXMLParser使用代碼示例圖(導(dǎo)入HYXMLParser之后就下面幾行代碼解析完畢,而且簡單易用):
這里展示的示例是從HYXMLParser下載的XMLParser_3這第3個(gè)版本的XML解析工具類:
5-1、先將HYXMLParse文件工具類直接拷貝你的項(xiàng)目中:
5-2、然后使用:
根據(jù)實(shí)際需求,字典轉(zhuǎn)模型的方法可能用MJExtension代替KVC最合適。
如果讀者熟悉蘋果原生的NSXMLParser,那么再來使用本人封裝好的這個(gè)HYXMLParser,你會(huì)發(fā)現(xiàn)本人封裝好的HYXMLParser很簡單易用。
同時(shí)建議剛學(xué)習(xí)XML解析的讀者先熟練掌握蘋果NSXMLParser解析,也就是前面第4點(diǎn)介紹的解析過程,再來學(xué)習(xí)使用本人的HYXMLParser。
6、簡單說說本人封裝好的的HYXMLParser_3的實(shí)現(xiàn)思路。
6-1、將蘋果原生的NSXMLParser通過代理方法SAX解析XML的方式封裝在一個(gè)普通的NSObject類中。
6-2、在代理解析方法中,因?yàn)樾枰粩嗟膭?chuàng)建模型對(duì)象,這里我使用了NSObjectFromString方法,通過類的名字來創(chuàng)建類對(duì)象,然后通過類對(duì)象創(chuàng)建模型對(duì)象。
這樣就模型對(duì)象的類名可以通過參數(shù)NSString類型外部傳入,同時(shí)實(shí)現(xiàn)了與模型對(duì)象的解耦,不需要import需要的模型對(duì)象的類。
6-3、根據(jù)實(shí)際需求,可能需要MJExtension字典轉(zhuǎn)模型來替代功能有限的蘋果原生的KVC,所以這里用Block來提供對(duì)外公開的接口,讓外部自由選擇字典轉(zhuǎn)模型的方法。
- iOS開發(fā)中使用SQL語句操作數(shù)據(jù)庫的基本用法指南
- 詳解iOS應(yīng)用開發(fā)中Core Data數(shù)據(jù)存儲(chǔ)的使用
- 詳解iOS開發(fā)中UItableview控件的數(shù)據(jù)刷新功能的實(shí)現(xiàn)
- iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)
- iOS開發(fā)中使用FMDB來使程序連接SQLite數(shù)據(jù)庫
- iOS sqlite對(duì)數(shù)據(jù)庫的各種操作(日常整理全)
- 深入講解iOS開發(fā)中應(yīng)用數(shù)據(jù)的存儲(chǔ)方式
- iOS開發(fā)使用GDataXML框架解析網(wǎng)絡(luò)數(shù)據(jù)
- 詳解iOS App開發(fā)中session和coockie的用戶數(shù)據(jù)存儲(chǔ)處理
- ios學(xué)習(xí)筆記之基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換
相關(guān)文章
iOS 仿百度外賣-首頁重力感應(yīng)的實(shí)例
這篇文章主要介紹了iOS 仿百度外賣-首頁重力感應(yīng)的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01iOS實(shí)現(xiàn)可以縱向橫向滑動(dòng)的表格實(shí)例代碼
這篇文章主要給大家介紹了利用iOS實(shí)現(xiàn)可以縱向橫向滑動(dòng)的表格的相關(guān)資料,文中給出了詳細(xì)的實(shí)現(xiàn)方法示例代碼,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06解決Alamofire庫在iOS7下設(shè)置Head無效的問題
本文主要介紹Alamofire庫在iOS下設(shè)置Head,這里通過代碼實(shí)例解決不同版本的IOS系統(tǒng)出現(xiàn)的問題,有需要的小伙伴可以參考下2016-07-07iOS 使用UITextField自定義搜索框 實(shí)現(xiàn)用戶輸入完之后“實(shí)時(shí)搜索”功能
這篇文章主要介紹了iOS 使用UITextField自定義搜索框 實(shí)現(xiàn)用戶輸入完之后“實(shí)時(shí)搜索”功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03