所謂」解析」:從事先規定好的格式中提取資料
解析的前提:提前約定好格式,資料提供方按照格式提供資料,資料獲取方則按照格式獲取資料
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...