UI XML,JSON 資料結構解析

2021-07-08 15:22:39 字數 1621 閱讀 2861

所謂」解析」:從事先規定好的格式中提取資料

解析的前提:提前約定好格式,資料提供方按照格式提供資料,資料獲取方則按照格式獲取資料

xml:extensible markup language(可擴充套件標記語言)

xml的格式: 節點使用一對標籤表示 起始標籤和結束標籤

根節點只有乙個,是起始節點.節點可以巢狀

節點可以有值 儲存在一對兒標籤中

xml解析用到的sax的工具 sax:****** api for xml. 基於事件驅動的解析方式,逐行解析資料 nsxmlparser

一共有5個**方法, 已經開始分析檔案 已經開始遇到節點 發現字元 已經遇到結束節點 已經結束檔案分析 其中中間的三行迴圈執行,解析資料時在這幾個方法進行

dom解析 依靠第三方類庫gdataxmlnode

gdataxmlnode類 依靠系統的libxml2來實現 使用的時候需要匯入libxml2框架

真諦:把所有節點一次性讀取 並轉化為樹形結構 整體解析(與sax解析的區別)

// 檔案位址

nsstring *path = [[nsbundle mainbundle]pathforresource:@」student」 oftype:@」xml」];

// 轉化成二進位制物件

nsdata *data = [nsdata datawithcontentsoffile:path];

// 建立乙個錯誤物件

nserror *error = nil;

// 初始化 檔案物件

gdataxmldocument *document = [[gdataxmldocument alloc]initwithdata:data options:0 error:&error];

// 獲取根節點

gdataxmlelement *rootelement = [document rootelement];

// 獲取根節點下 student節點

nsarray *elementarray = [rootelement elementsforname:@"student"]

遍歷陣列 對每乙個student進行化整為零

// 把節點中的值取出來

nsstring *name = [nameelement stringvalue];

給model的元素進行賦值 本質還是要將資料轉化成model

關於提取相同的部分寫方法

先隨便寫乙個方法,把相同的內容複製過來

1.找報紅的物件(是方法中沒有的 需要外界傳過來)

2.找可變的物件(這些這是需要作為方法引數傳過來的)

3.選好返回值

解析json資料 json資料相較於xml比較簡單,是以鍵值對的方式存在的. ios和安卓請求資料的介面是一樣的.乙個鍵值對叫乙個字段

解析json資料

真諦:必須要知道 json檔案的最外層是什麼,中括號為陣列 大括號為字典

nsmutablearray *dataarray = [nsjsonserialization jsonobjectwithdata:data options:(nsjsonreadingmutablecontainers) error:&error];

XML JSON資料結構解析

一 xml的解析 xml的解析分為sax解析和dom解析,dom解析又分為根節點解析和葉子節點解析。1.sax解析步驟 a.獲取xml資料儲存的檔案路徑 假如xml檔案為students.xml nsstring filepath nsbundle mainbundle pathforresourc...

大資料結構解析

結構大資料報括結構化 半結構化和非結構化資料,非結構化資料越來越成為資料的主要部分。據idc的調查報告顯示 企業中80 的資料都是非結構化資料,這些資料每年都按指數增長60 大資料就是網際網路發展到現今階段的一種表象或特徵而已,沒有必要神話它或對它保持敬畏之心,在以雲計算為代表的技術創新大幕的襯托下...

集合的資料結構解析

map介面 儲存 鍵 值 對的資料 相當於高中的 函式y f x x1,y1 x2,y2 key是不可重複的,使用set存,value可以重複的,使用collection來存放的,乙個key value對構成乙個entry map.entry entry使用set來存放。map結構梳理 map ha...