【XPath語法】java
//XML路徑語法設計模式
【做用】快速的鎖定某一級的節點。能夠免去一層層複雜的節點搜索dom
XPath 使用路徑表達式來選取 XML 文檔中的節點或節點集。節點是經過沿着路徑 (path) 或者步 (steps) 來選取的。tcp
/root/books/book/namespa
author//name設計
===============================================xml
【MVC設計模式】對象
使用MVC設計模式解析新浪網數據事件
http://rss.sina.com.cn/sina_all_opml.xmlip
===============================================
【NSXMLParser】
對xml進行解析的標準有兩種:sax以及dom。
首先這兩種標準並非針對java的,他們在各類語言環境下均可以實現。dom是真正的國際標準。sax是事實的標準,它不禁任何商業組織維 護,而是由一個非商業的組織在運做。就像iso7層模型和tcp/ip同樣,雖然sax不是正式的標準,可是一點不影響其在xml解析領域的地位。
dom實現的原理是把整個xml文檔一次性讀出,放在一個樹型結構裏。在須要的時候,查找特定節點,而後對節點進行讀或寫。它的主要優點是實現簡單,讀寫平衡;缺點是比較佔內存,由於他要把整個xml文檔都讀入內存,文件越大,這種缺點就越明顯。
sax的實現方法和dom不一樣。
SAX解析XML,是基於事件通知的模式,一邊讀取XML文檔一邊處理,沒必要等整個文檔加載完以後才採起操做,當在讀取解析過程當中遇到須要處理的對象,會發出通知對其進行處理。因爲該方法 只在xml文檔中查找特定條件的內容,而且只提取須要的內容。這樣作佔用內存小,靈活,正好知足咱們的需求。
在iOS中,能夠經過NSXMLParser實現sax方法解析xml文件。
對於NSXMLParser,經常使用的初始化方法有兩種:經過XML的URL初始化和經過本地的XML文件初始化。
使用NSXMLParser解析XML數據的關鍵是實現NSXMLParserDelegate中的5個方法:
/* 開始解析xml文件,在開始解析xml節點前,經過該方法能夠作一些初始化工做 */
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
NSLog(@"開始解析xml文件");
}
/* 當解析器對象遇到xml節點的開始標記時,調用這個方法開始解析該節點 */
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
NSLog(@"發現節點");
}
/* 當解析器找到開始標記和結束標記之間的字符時,調用這個方法解析當前節點的全部字符 */
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"正在解析節點內容");
}
/* 當解析器對象遇到xml節點的結束標記時,調用這個方法完成解析該節點 */
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"解析節點結束");
}
/* 解析xml文件結束 */
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"解析xml文件結束");
}