NSXMLParser詳解


 NSXMLParser 實現的是sax方法解析xml文件。dom實現的原理是把整個xml文檔一次性讀出,放在一個樹型結構里。在需要的時候,查找特定節點,然后對節點進行讀或寫。他的主要優勢是實現簡單,讀寫平衡;缺點是比較占內存 ...
 
 
NSXMLParser 實現的是sax方法解析xml文件。
dom實現的原理是把整個xml文檔一次性讀出,放在一個樹型結構里。在需要的時候,查找特定節點,然后對節點進行讀或寫。他的主要優勢是實現簡單,讀寫平衡;缺點是比較占內存,因為他要把整個xml文檔都讀入內存,文件越大,這種缺點就越明顯。
sax的實現方法和dom不同。他只在xml文檔中查找特定條件的內容,並且只提取需要的內容。這樣做占用內存小,靈活,正好滿足我們的需求。他的缺點就是寫,有些資料介紹了寫入的方法,但是我感覺這對本例沒有必要。
運行NSXMLParser涉及設置、運行和響應結果。
1)啟動NSXMLParser 
要使用NSXMLParser要先創建它,設置各種屬性,主要用到以下幾個方法:
initWithContentsOfURL 通過NSURL創建解析器
initWithData 通過NSData創建解析器
setDelegate 為解析器定義委托
parse 運行解析器
2)充當委托
最重要的5個方法: 
//發現元素開始符的處理函數  (即報告元素的開始以及元素的屬性) 
- (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)paser:parserErrorOccured
更多XML解析器參考:
<http://www.iphonesdkarticles.com/2008/12/parsing-xml-files.html>
<http://codesofa.com/blog/archive/2008/07/23/make-nsxmlparser-your-friend.html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM