IOS 高階程式設計 XML 資料結構解析

2021-06-22 17:00:30 字數 1845 閱讀 1085

所謂的解析無非就是:從事先規定好的格式中提取資料。

ios 開發常見的解析:xml 解析 (用的不是很多, 大約20%左右,一般大專案能用到)、 json解析(這個用得非常的多)

xml 資料結構的語法:

一對尖括號代表乙個節點,或者標籤

只有乙個根節點

節點可以互相巢狀

沒有子節點的節點稱謂葉子節點 

讓我們在自己的工程中建立乙個property list

劉喆

18120

劉少輝12114

龔寧17114

吳東洋10888

我們先用**把 xml 引入進來, **如下:

#pragma mark

#pragma dom 解析

- (void)domparser if ([[child name] isequaltostring:@"age"]) if ([[child name] isequaltostring:@"tel"]) }}

}nslog(@"arr====%@",stuarray);

}

執行解析協議

@inte***ce saxxmlparser : nsobject

@property (nonatomic,retain)nsstring *currentvalue;

@property (nonatomic,assign)iddelegate;

- (void)startparser;

解析的具體過程

//sax 解析啦

- (void)startparser

static nsstring *kroot = @"root";

static nsstring *kstuarray = @"stu_array";

static nsstring *kstudent = @"student";

static nsstring *kname = @"name";

static nsstring *kage = @"age";

static nsstring *ktel = @"tel";

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

if ([elementname isequaltostring:kstudent])

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

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

if ([elementname isequaltostring:kage])

if ([elementname isequaltostring:ktel])

if ([elementname isequaltostring:kroot])

nslog(@"%s*****==2",__func__);

}

高階資料結構

struct treenode treenode是經典的二叉樹節點,在資料的序列化和反序列按照層遍歷來處理的。以上二叉樹會被序列化為 1 root節點1,是第一層 2,3 然後第二層是2,3 4,第三層分別是2節點的兩個孩子節點空,用 來表示,然後3節點的左孩子為4,右孩子節點為 5 第四層4節點的...

高階資料結構

與普通佇列的區別 1.保證每次取出的元素時佇列中優先順序最高的 2.優先級別可自定義 場景 從雜亂無序的資料中按照一定的順序 或者優先順序 篩選資料 本質 1.二叉堆的結構,堆在英文裡叫binary heep 2.利用乙個陣列結構來實現完全二叉樹 特性 1.陣列裡的第乙個元素array 0 擁有最高...

高階資料結構c

動態查詢字首和 vector int bits 放樹狀陣列 int n 原陣列的大小 1表示樹狀陣列的大小,為什麼要 1呢,因為樹狀陣列多了乙個前0個數的和 intquery int x void add int i,int x 功能比樹狀陣列多一點 const int e 100006 struc...