iOS開發之XML解析

2021-06-26 23:56:37 字數 1773 閱讀 7740

最近用到網路請求,整理一下。

資料結構:

@inte***ce viewcontroller () @property (nonatomic, strong) nsmutablearray *datalist;

// 拼接字串

@property (nonatomic, strong) nsmutablestring *elementstring;

@property (nonatomic, strong) video *v;

@end

xml解析:

準備: 載入資料

- (ibaction)loaddata

];}

xml 解析用到五個**方法:

#pragma mark - xml解析**方法

#pragma mark 1. 開始

- (void)parserdidstartdocument:(nsxmlparser *)parser

else

// 2> elementstring

if (!self.elementstring) else

}#pragma mark 2. 所有開始乙個節點:- (void)parser:(nsxmlparser *)parser didstartelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname attributes:(nsdictionary *)attributedict

// 每開始乙個新節點之前都清空elementstring

// 避免上一次的結果被重複拼接,例如拼完名字是"abc",再拼長度就會變成"vda1234"

[self.elementstring setstring:@""];

}#pragma mark 3. 查詢內容,可能會重複多次

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

#pragma mark 4. 節點結束

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

else if (![elementname isequaltostring:@"videos"])

// if ([elementname isequaltostring:@"name"]) else if ([elementname isequaltostring:@"length"])

}#pragma mark 5. 文件結束

- (void)parserdidenddocument:(nsxmlparser *)parser

);// [self.datalist enumerateobjectsusingblock:^(id obj, nsuinteger idx, bool *stop) ];

}#pragma mark 6. 出錯處理

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

學習自劉凡老師

iOS開發之XML解析

有如上xml檔案 xml解析 分為兩種方式 sax解析和dom解析。sax解析 逐行進行解析資料 優點 1.逐行解析,不會一次性讀入文件,減少記憶體消耗。2.因為是逐行解析,xml檔案損壞對其沒有影響。缺點 沒辦法獲取檔案的層級關係,對程式設計師而言獲取資料比較麻煩。1.獲取檔案路徑 nsstrin...

IOS 開發 XML解析

先提供乙個測試介面 xml介面 這個是全國天氣的根節點,列出所有的省,其中的pyname欄位是各個省xml的檔名,比如北京的是beijing,那就意味著北京的xml位址為 乙個省的天氣,其中列出該省各個市的資料,北京就列出各個區。tmp1是最低溫低,tmp2是最高溫度,url非常重要,我們一會兒再說...

IOS開發 GDataXML解析XML

對於xml解析,只想說一句話,千萬別用系統自帶的解析器,否則,你會死的很慘!gdataxmlparser是乙個對xml具有良好操作的第三方庫。解析的方法如下 步驟 一 加入libxml2.dylib框架。二 設定search paths中header search paths為 usr includ...