天天看點

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更簡單,更簡潔。

3、XML解析方式的選擇建議

4、NSXMLParser使用示例:

   解析過程三步走:

  

iOS開發之網絡資料解析(二)--XML解析簡介

     

iOS開發之網絡資料解析(二)--XML解析簡介

   

iOS開發之網絡資料解析(二)--XML解析簡介

  <好處:使用友善,可以面向任意類型的模型對象解析XML,複用性高,與外界高内聚低耦合>

iOS開發之網絡資料解析(二)--XML解析簡介

  5-1、先将HYXMLParse檔案工具類直接拷貝你的項目中:

iOS開發之網絡資料解析(二)--XML解析簡介

  5-2、然後使用:

iOS開發之網絡資料解析(二)--XML解析簡介

  根據實際需求,字典轉模型的方法可能用MJExtension代替KVC最合适。

  6-1、将蘋果原生的NSXMLParser通過代理方法SAX解析XML的方式封裝在一個普通的NSObject類中。

  6-2、在代了解析方法中,因為需要不斷的建立模型對象,這裡我使用了NSObjectFromString方法,通過類的名字來建立類對象,然後通過類對象建立模型對象。

      這樣就模型對象的類名可以通過參數NSString類型外部傳入,同時實作了與模型對象的解耦,不需要import需要的模型對象的類。

  6-3、根據實際需求,可能需要MJExtension字典轉模型來替代功能有限的蘋果原生的KVC,是以這裡用Block來提供對外公開的接口,讓外部自由選擇字典轉模型的方法。

繼續閱讀