XPath等

【XPath语法】

//XML路径语法

【作用】快速的锁定某一级的节点。可以免去一层层复杂的节点搜索

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

 

 

/root/books/book/name

author//name

 

 

===============================================

 

【MVC设计模式】

使用MVC设计模式解析新浪网数据

http://rss.sina.com.cn/sina_all_opml.xml

 

 

 

===============================================

 

 

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

}

 

转载于:https://www.cnblogs.com/yuhanchen/p/5278584.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值