XML檔案的解析和json的解析

2021-07-09 09:18:57 字數 2508 閱讀 7892

解析就是從事先規定好的格式中提取資料

xml的解析方式有兩種 sax解析 dcm解析(安卓有乙個pull)

sax解析:

nsstring *path = [[nsbundle mainbundle] pathforresource:@"message" oftype:@"txt"];

nsdata *data = [nsdata datawithcontentsoffile:path];

開始解析

1 建立解析物件 繫結資料

nsxmlparser *parse = [[nsxmlparser alloc] initwithdata:data];

2 指定** 記得要引入**

parse.delegate = self;

3 開始解析

[parse parse];

// 開始解析文件的方法

- (void)parserdidstartdocument:(nsxmlparser *)parser;

// 開始解析解析標籤的方法

- (void)parser:(nsxmlparser *)parser didstartelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname attributes:(nsdictionary*)attributedict ;

// 解析中間資料項

- (void)parser:(nsxmlparser *)parser foundcharacters:(nsstring *)string ;

// 結束解析標籤

- (void)parser:(nsxmlparser *)parser didendelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname ;

// 結束解析文件

- (void)parserdidenddocument:(nsxmlparser *)parser ;

當檔案書寫錯誤的時候可以呼叫這個方法來檢視

- (void)parser:(nsxmlparser *)parser parseerroroccurred:(nserror *)parseerror;

dom解析:

拿到解析資料

nsstring *path = [[nsbundle mainbundle] pathforresource:@"message" oftype:@"txt"];

nsdata *data = [nsdata datawithcontentsoffile:path];

建立解析物件

gdataxmldocument *doc = [[gdataxmldocument alloc] initwithdata:data options:0 error:nil];

拿到根節點

gdataxmlelement *root = doc.rootelement;

// 拿到子節點

nsarray *modelarray = root.children;

// 初始化data陣列

self.data = [nsmutablearray array];

// 遍歷陣列取到每乙個model對應的節點

for (gdataxmlelement *modelele in modelarray)

[self.data addobject:p]; }

使用系統提供的類進行json解析

nsstring *path = [[nsbundle mainbundle] pathforresource:@"json" oftype:@"txt"];

nsdata *data = [nsdata datawithcontentsoffile:path];

//nsarray *array = [nsjsonserialization jsonobjectwithdata:data options:nsjsonreadingallowfragments error:nil];

self.data = [nsmutablearray array];

for (nsdictionary *dic in array)

使用 jsonkit 進行json解析: 需要引入jsonkit檔案

nsstring *path = [[nsbundle mainbundle] pathforresource:@"json" oftype:@"txt"];

nsdata *data1 = [nsdata datawithcontentsoffile:path];

//nsarray *array = [data1 objectfromjsondata];

// 初始化陣列

self.data = [nsmutablearray array];

// 遍歷陣列

for (nsdictionary *dic in array)

json和xml資料的解析

一 json資料 1一條json就像乙個物件,也想像oc中的陣列,且內嵌了很多鍵值對字典 二 xml資料 三 多層資料是如何構架起來的?四大節點 整體資料,分類方式key,個體集合,層級資料 3.1解析組資料?我的理解 1一條json資料,可看做乙個物件,很多屬性和屬性值的集合。就好比字典,擁有很多...

jquery 解析返回的xml和json

一 jquery 解析ajax請求返回的xml格式的資料 1 傳送ajax請求 2 servlet 端返回的值 二 jquery 解析返回的json 格式的資料,這裡是返回的json物件格式,如果返回的是json陣列格式,就是js陣列,所以按照js陣列獲取 1 ajax 請求以及解析過程 2 ser...

Android中XML和JSON資料的解析小案例

一 xml package com.itheima.ceshouji.domain 13691689238 廣東深圳移動神州行卡 名雖可得,利則難獲,藝界發展,可望成功 凶帶吉 public class product public void settype string type public s...