【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文件结束");
}