UI XML,JSON 數據結構解析

所謂”解析”:從事先規定好的格式中提取數據
解析的前提:提前約定好格式,數據提供方按照格式提供數據,數據獲取方則按照格式獲取數據
XML:Extensible Markup language(可擴展標記語言)
XML的格式: 節點使用一對標籤表示 起始標籤和結束標籤
根節點只有一個,是起始節點.節點可以嵌套
節點可以有值 存儲在一對兒標籤中
XML解析用到的SAX的工具 SAX:Simple 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];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章