开发笔记7-XML解析
来源:互联网 发布:windows qt4.8.0下载 编辑:程序博客网 时间:2024/05/16 10:44
今天拿来同学在新浪实习时做的一个新闻阅读器,就是访问新浪指定的URL获取XML文件,里面有新闻的标题、日期和具体网页的链接,觉得不错,正好弥补了之前只做了json格式数据的封装和解析。
突然上来看有些费劲,查了下百度,就搜到了CSDN的博客有这方面的知识,参考链接:http://blog.csdn.net/smallmuou/article/details/7404330,有了大致的认识,开始新闻阅读器的程序阅读:
-(void)parser{NSURL *url=[NSURL URLWithString:@"http://**/ddt.xml"];NSData *data=[NSData dataWithContentsOfURL:url];NSXMLParser *xmlParser=[[NSXMLParser alloc]initWithData:data];xmlParser.delegate=self;[xmlParser parse];[xmlParser release];}
为了避嫌就不公开那个XML的链接地址了,总之是能够获得数据并初始化好一个解析器,调用解析器方法parse就开始解析,当然必须实现XML解析协议方法,不过我这个同学没有在接口出声明遵守XML解析协议,照样可以解析XML,但方法还是协议中的:
- (void)parserDidStartDocument:(NSXMLParser *)parser{[arr removeAllObjects];}- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{if([elementName isEqualToString:@"item"]){aNews= [[News alloc] init];}else if([elementName isEqualToString:@"title"]){[str setString:@""];}else if([elementName isEqualToString:@"description"]){[str setString:@""];}else if([elementName isEqualToString:@"link"]){[str setString:@""];}else if([elementName isEqualToString:@"pubDate"]){[str setString:@""];}}- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{[str appendString:string];}- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{if([elementName isEqualToString:@"item"]){[arr addObject:aNews];}else if([elementName isEqualToString:@"title"]){NSString *str1=[NSString stringWithString:str];aNews.title = [str1 substringFromIndex:5];}else if([elementName isEqualToString:@"description"]){aNews.description = [NSString stringWithString:str];}else if([elementName isEqualToString:@"link"]){aNews.link = [NSURL URLWithString:str];}else if([elementName isEqualToString:@"pubDate"]){aNews.date=[NSString stringWithString:str];}}- (void)parserDidEndDocument:(NSXMLParser *)parser{[self.mytable reloadData];}
确实比json复杂一些,获得数据都是在结束标签时进行,这个解析结束就让tableView重载自己的数据,达到更新的目的。
- 开发笔记7-XML解析
- android开发笔记之解析XML
- iPhone开发笔记——webservice解析xml
- iPhone开发笔记——webservice解析xml
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
- XML 文件解析 -- MarsChen Android 开发教程学习笔记
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
- 苹果开发 笔记(74)GDataXML 解析 xml
- iPhone开发笔记——webservice解析xml
- android开发笔记之PULL解析xml文件
- 【XML笔记】XML文档解析
- android 解析xml 笔记
- 解析xml笔记
- 学习笔记-解析XML
- xml解析学习笔记
- XML解析笔记
- VS2010添加汇编
- Android之Bluetooth
- png 图片的缩放
- 【Author : DS】{Regionals 2011, North America - Southeast USA} C题解题报告
- 堆排(库函数)
- 开发笔记7-XML解析
- LLVM Programmer's Mannual---阅读笔记
- 纯资源DLL的编写
- Cookies对象的使用 限制
- hdu 1284 钱币兑换问题
- Android学习笔记:Hello android! 管中窥豹
- Session对象的存储,利用Sesson传递用户登陆信息代码
- 往hashSet集合中存入自定对象
- 将自定义对象作为元素存到TreeSet集合中