`
jsntghf
  • 浏览: 2532765 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

rss解析

    博客分类:
  • iOS
阅读更多

rss数据格式如下:

 

<rss version="2.0">
<channel>
<title>
<![CDATA[国际要闻-新浪新闻]]>
</title>
<image>
<title>
<![CDATA[新闻中心-国际新闻]]>
</title>
<link>http://news.sina.com.cn/world</link>
<url>http://www.sinaimg.cn/home/deco/2009/0330/logo_home_news.gif</url>
</image>
<description>
<![CDATA[国际新闻-焦点新闻]]>
</description>
<link>http://news.sina.com.cn/491/2008/0827/1.html</link>
<language>zh-cn</language>
<generator>WWW.SINA.COM.CN</generator>
<ttl>5</ttl>
<copyright>
<![CDATA[Copyright 1996 - 2012 SINA Inc. All Rights Reserved]]>
</copyright>
<pubDate>Thu, 28 Jun 2012 13:57:02 GMT</pubDate>
<category>
<![CDATA[]]>
</category>
<item>
<title>
<![CDATA[俄罗斯称不准备在叙利亚问题采取特别措施]]>
</title>
<link>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/2012-06-28/184124676271.shtml</link>
<author>WWW.SINA.COM.CN</author>
<guid>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/2012-06-28/184124676271.shtml</guid>
<category>
<![CDATA[国际新闻-焦点新闻]]>
</category>
<pubDate>Thu, 28 Jun 2012 10:41:57 GMT</pubDate>
<comments></comments>
<description>
<![CDATA[  新华网莫斯科6月28日电 (记者 周良)俄罗斯武装力量总参谋长马卡罗夫28日在莫斯科表示,尽管叙利亚“已经爆发内战”,但俄罗斯不会因此采取“特别措施”。
         
           马卡罗夫当天对俄罗斯媒体说,他同意叙利亚总统巴沙尔所说的该国已经爆发内战的说法。但是,俄罗斯不会采取“特....]]>
</description>
</item>
<item>
<title>
<![CDATA[瑞典男子怀疑妻子红杏出墙吃掉其嘴唇]]>
</title>
<link>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/2012-06-28/180524676120.shtml</link>
<author>WWW.SINA.COM.CN</author>
<guid>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/2012-06-28/180524676120.shtml</guid>
<category>
<![CDATA[国际新闻-焦点新闻]]>
</category>
<pubDate>Thu, 28 Jun 2012 10:05:25 GMT</pubDate>
<comments></comments>
<description>
<![CDATA[  据英国《每 日电讯报》6月27日报道,瑞典一名男子因怀疑妻子红杏出墙,一怒之下竟吃掉了她的嘴唇,声称让她以后再也没法跟别的男人接吻。
         
           这个恐怖的事件发生在今年5月。男子现年 52岁,来自瑞典首都斯德哥尔摩,在当地一所学院担任教授,因为某些原因他的姓名未被透露....]]>
</description>
</item>
<item>
<title>
<![CDATA[视频:日本萌系电视台女主播网络爆红]]>
</title>
<link>http://go.rss.sina.com.cn/redirect.php?url=http://video.sina.com.cn/p/news/w/v/2012-06-28/180461790937.html</link>
<author>WWW.SINA.COM.CN</author>
<guid>http://go.rss.sina.com.cn/redirect.php?url=http://video.sina.com.cn/p/news/w/v/2012-06-28/180461790937.html</guid>
<category>
<![CDATA[国际新闻-焦点新闻]]>
</category>
<pubDate>Thu, 28 Jun 2012 10:04:30 GMT</pubDate>
<comments></comments>
<description>
<![CDATA[  日本电视圈最近吹起一股“甜心主播”风。当中引发网友疯狂讨论的,莫过于今年才22岁的静冈朝日电视台新人主播牧野结美。她一双水汪汪的大眼睛加上甜美笑容,一出道就掳获观众的心。因为初登主播台才几个月,不免紧张猛吃螺丝、不断低头看稿,但网友大多表示可以谅解,理由是“....]]>
</description>
</item>
<item>
<title>
<![CDATA[高清图:微软希腊分公司遭恐怖袭击暂停运营]]>
</title>
<link>http://go.rss.sina.com.cn/redirect.php?url=http://slide.news.sina.com.cn/w/slide_1_2841_24419.html</link>
<author>WWW.SINA.COM.CN</author>
<guid>http://go.rss.sina.com.cn/redirect.php?url=http://slide.news.sina.com.cn/w/slide_1_2841_24419.html</guid>
<category>
<![CDATA[国际新闻-焦点新闻]]>
</category>
<pubDate>Thu, 28 Jun 2012 10:00:23 GMT</pubDate>
<comments></comments>
<description>
<![CDATA[]]>
</description>
</item>
<item>
<title>
<![CDATA[欧洲科学家发现猴面兰花(图)]]>
</title>
<link>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/p/2012-06-28/174824676055.shtml</link>
<author>WWW.SINA.COM.CN</author>
<guid>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/p/2012-06-28/174824676055.shtml</guid>
<category>
<![CDATA[国际新闻-焦点新闻]]>
</category>
<pubDate>Thu, 28 Jun 2012 09:48:40 GMT</pubDate>
<comments></comments>
<description>
<![CDATA[  据英国《每日邮报》6月26日报道,厄瓜多尔境内有一种长着猴子脸的兰花,日前,欧洲的植物学家在厄瓜多尔巧遇猴面兰花,拍到了它们繁花盛开的样子。这种兰花之所以长着一张猴脸,是由花朵的不同部位形成的。比如,猴脸和猴嘴的图案是花朵最里面的唇瓣,颜色有深有浅,而三片像....]]>
</description>
</item>
<item>
<title>
<![CDATA[叙利亚反对派拒绝履行和平计划 除非阿萨德下台]]>
</title>
<link>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/2012-06-28/173524676076.shtml</link>
<author>WWW.SINA.COM.CN</author>
<guid>http://go.rss.sina.com.cn/redirect.php?url=http://news.sina.com.cn/w/2012-06-28/173524676076.shtml</guid>
<category>
<![CDATA[国际新闻-焦点新闻]]>
</category>
<pubDate>Thu, 28 Jun 2012 09:35:00 GMT</pubDate>
<comments></comments>
<description>
<![CDATA[  CNTV消息 (网络新闻联播编译 邹娴 报道)据半岛电视台6月28日报道,叙利亚反对派当天发表声明称,将不会接受联合国特使科菲・安南提出的政府过渡计划,除非计划中明确要求总统巴沙尔・阿萨德下台。
         
           据联合国外交人士称,安南的提议旨在结束叙利亚长达16个月的冲突,尽管....]]>
</description>
</item>
</channel>
</rss>

 

具体的解析方式如下:

 

- (void)viewDidLoad {
    [super viewDidLoad];
    
	self.title = @"国际要闻";	
	self.rssList = [[NSMutableArray alloc] init];
	
	NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://rss.sina.com.cn/news/world/focus15.xml"]];
	parser.delegate = self;
	[parser parse];	
}

#pragma mark -
#pragma mark NSXMLParser delegate Methods

- (void)parserDidStartDocument:(NSXMLParser *)parser {
	NSLog(@"startParser");	
}

- (void)parserDidEndDocument:(NSXMLParser *)parser {
	[parser release];
	NSLog(@"%@", rssList);	
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
	if([elementName isEqualToString:@"item"]) {
		currentItem = [[NSMutableDictionary alloc] init];
	} else if (currentItem != NULL) {
		currentContents = [[NSMutableString alloc] init];
	}	
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
	if([elementName isEqualToString:@"item"]) {
		[rssList addObject:currentItem];
		[currentItem release];
	} else if (currentContents && currentItem) {
		[currentItem setObject:currentContents forKey:elementName];
		[currentContents release];
		currentContents = nil;		
	}	
}

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
	if(currentItem && currentContents) {
		currentContents = [[NSMutableString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
	}
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
	if(currentItem && currentContents) {
		[currentContents appendString:string];		
	}	
}
分享到:
评论

相关推荐

    swift-IDNFeedParser一个简单易用的Rss解析库(Objective-C)

    Swift-IDNFeedParser是一个专为Objective-C开发者设计的RSS解析库,它简化了RSS源的处理,使得在iOS和macOS应用中集成RSS阅读功能变得轻而易举。这个库的核心在于提供了一种高效且直观的方式来解析RSS feed,将XML...

    Atom-TIFeedParser,用swift编写的rss解析器。通过在github上创建一个帐户来促进tichise/tifeedparser的开发。.zip

    Atom-TIFeedParser是一个基于Swift编程语言开发的RSS解析器,专为处理RSS(Really Simple Syndication) feeds而设计。RSS是一种广泛使用的互联网内容聚合格式,允许用户订阅博客、新闻站点或其他更新频繁的内容源,...

    iPhone xml rss解析

    本示例主要探讨如何在iPhone应用中解析XML结构的RSS feed,以便将新闻标题展示在表格视图中。 首先,让我们了解XML的基本概念。XML是一种标记语言,用于描述数据的结构和内容。它使用自定义的标签来表示数据,使得...

    RSS解析使用的相关JAR包

    在这个场景中,我们有两个关键的JAR包和一个工具类用于RSS解析: 1. **rome-0.9.jar**: 这是Rome库的一个版本,它是一个Java库,专门设计用于处理RSS和Atom馈送。Rome提供了一系列的类和接口,可以方便地创建、解析...

    该代码能完成解析XML文件的RSS解析器

    描述中提到的"该RSS解析器能完成对XML文件的解析,使阅读网站上的新闻能更快和方便"进一步强调了RSS解析器的作用。通过解析RSS feed,用户可以快速获取到感兴趣网站的最新内容,无需手动检查每个网站的更新。这大大...

    RSS解析For Android

    解析代码示例: import net.xfok.rss.parser.Feed; import net.xfok.rss.parser.Rss; ...... String url="http://www.xfok.net/news/rss.xml"; Rss rss=new rss(url); List&lt;Feed&gt; feeds=rss.getFeeds(); ...... 欢迎...

    一个RSS解析器源码

    RSS解析器是用于读取和处理这些RSS feed的程序,将XML数据转换为人类可读的形式。 在“一个RSS解析器源码”这个主题中,我们主要会涉及到以下几个关键知识点: 1. **RSS格式**:RSS文件通常以XML格式存储,包含一...

    Java使用SAX的rss解析实例

    在本实例中,Struts被用来构建后端逻辑,接收用户请求,调用RSS解析器,然后将解析后的数据传递给视图层进行展示。 要实现这个实例,你需要做以下几步: 1. **配置Struts框架**:首先,确保你的项目中已经集成了...

    android rss 解析 附图片

    总结来说,Android中的RSS解析涉及网络请求、XML解析、UI展示以及图片加载等多个技术点。`RssSaxActivity3.java`和`RssSaxParser.java`这两个文件分别处理了UI逻辑和数据解析,通过SAX解析器高效地处理XML数据,结合...

    rome-1.0RC2rss解析

    【罗马(Rome)RSS解析库1.0RC2详解】 在互联网信息爆炸的时代,RSS(Really Simple Syndication)成为了订阅和聚合新闻、博客、播客等动态内容的重要工具。RSS通过XML格式提供数据,使得用户可以无需访问各个网站...

    RSS解析工具

    Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读,发布器,支持 RSS 0.91 Netscape RSS 0.91 Userland RSS 0.92 RSS 0.93 RSS 0.94 RSS 1.0 RSS 2.0 Atom 0.3 Atom 1.0

    RSS解析引擎(用VC写的COM组件,适合大多数编程语言)

    VC写的RSS解析引擎,完全免费;支持RSS0.9X、RSS1.0、RSS2.0及ATOM规范;支持频道下载;支持所有中文网页;同步/异步解析;智能转换;定时自动刷新;多任务;不需要.net或java环境的支持等等。采用COM组件,适用于...

    Atom-urss,ultra-rss是另一个ruby提要rss解析器。通过在github上创建一个帐户来帮助zedtux/urss开发。.zip

    在实际应用中,Atom-urss或Ultra-RSS这样的RSS解析器可以与各种Ruby项目结合,比如构建一个自动抓取和更新博客文章的后台服务,或者创建一个实时监控新闻动态的应用程序。对于Ruby开发者来说,了解和掌握这样的库是...

    (转载)C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市

    在本文中,我们将深入探讨如何使用C#编程语言解析百度提供的天气数据,以及如何通过RSS解析百度新闻。同时,我们还会介绍如何根据IP地址获取用户所在的城市信息。这些功能是.NET开发者在构建实用应用程序时可能会...

    rss:Crystal的RSS解析器

    总之,"rss:Crystal的RSS解析器"提供了用Crystal语言处理RSS feed的工具,简化了对XML内容的处理,同时也为开发者提供了与RSS相关的功能和灵活性,以便在Crystal项目中集成和利用RSS数据。通过深入理解RSS标准和...

    javaRSS.zip

    1. **RSS解析**:Java RSS阅读器首先需要理解RSS的结构和格式。RSS文件通常遵循RSS 2.0标准,包含频道(channel)和条目(item)两部分。频道包含关于整个源的信息,如标题、描述和URL,而条目则代表单个文章或新闻...

    rss-parser:一个轻量级的RSS解析器,用于Node和浏览器

    rss解析器 一个用于将RSS XML提要转换为JavaScript对象的小型库。安装npm install --save rss-parser用法您可以从URL( parser.parseURL )或XML字符串( parser.parseString )解析RSS。 回调和Promises均受支持。...

    常用Rss,生成解析Rss,

    例如,IE7.0及以上版本内置了RSS解析功能,用户可以订阅RSS源并在浏览器侧栏查看更新。此外,许多第三方RSS阅读器如Feedly、Inoreader也提供了便捷的RSS解析服务。 4. **RSS的应用** - **新闻聚合**:用户可以通过...

    javascript 解析 rss 实例

    在本文中,我们将深入探讨如何使用JavaScript解析RSS(Really Simple Syndication) feed,这是一种常见的数据格式,用于发布新闻提要、博客更新和其他定期发布的内容。RSS订阅允许用户获取网站的最新内容而无需直接...

    MFC编写的RSS简单阅读器

    1. **解析RSS Feed**:由于RSS是XML格式,因此我们需要使用XML解析器来读取和解析RSS文件。MFC提供了CXMLEngine类来处理XML数据。开发者需要了解XML的基本结构,如XML元素、属性、命名空间等,并利用CXMLEngine的...

Global site tag (gtag.js) - Google Analytics