最近用到網路請求,整理一下。
資料結構:
@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...