SugarSync网盘之XML解析
iOS的XML解析
剛在應用里支持了SugarSync網盤。其實也是第一次聽說這個網盤,不過在國外貌似還蠻有名,這些都不是重點,重點是借此來總結一下iOS的XML解析。Xml想必也不陌生了,但是在iOS中如何解析,還是第一次接觸,故總結分享一下。
在iOS平臺,用于解析xml的框架還是很多的,主要分為SAX和DOM類型。SAX類型的特點是只能讀,且基于時間驅動模式,解析速度很快;DOM類型可以寫,便于轉換信息為xml,但是消耗內存大。
這次的項目中只需要解析網絡請求得到的xml信息,故采用了iOS自帶的NSXMLParserDelegate解析委托。用法也比較直觀和便捷。
1、在interface中繼承委托協議<NSXMLParserDelegate>
2、實例化NSXMLParser對象。該對象根據解析的xml對象創建而成,并可設置相應屬性,然后通過委托方法實現解析。
3、NSXMLParser主要方法:initWithContentsOfURL(通過xml文件實例化)、initWithData(通過xml的Data實例化)、setDelegate(設置委托對象)、parse(啟動解析)、release(解析完后,記得釋放該對象)等。
4、主要的委托方法:
-(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;
解析過程結束。
?
轉載于:https://www.cnblogs.com/A-Long-Way-Chris/p/3621427.html
總結
以上是生活随笔為你收集整理的SugarSync网盘之XML解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++之容器
- 下一篇: C++输入输出进制、数据宽度与对齐、精度