iOS開發之網路資料解析(二)--XML解析簡介,ios--xml

來源:互聯網
上載者:User

iOS開發之網路資料解析(二)--XML解析簡介,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或者HYXMLParser、libxml2(但是幾乎不用)

  小檔案:GDataXML、NSXMLParser或者HYXMLParser、libxml2

 

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,尊重勞動成果。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.