Android Rss阅读器
前言
前几天去北京面试,题目是让我解析一下腾讯的Rss。之前虽然知道xml,但是自己从来没有去学习怎么解析,在网上查一些例子,但是就是没有解析出来。现在看看还蛮好笑的,因为我那时候是使用sax解析xml的,可不巧的是让我解析的xml的encoding是“GBK”,但是sax默认使用utf-8。所以没有解析出来也不足为奇了。关于如何解决这个问题下面会说。
Rss概念
要在Android平台中开发RSS客户端,首先需要了解什么是RSS,RSS怎样工作,及怎样解析XML等知识。
首先,我们必须要了解什么是RSS:
1. RSS指Really Simple Syndication(真正简易联合)
2. RSS使您有能力聚合(syndicate)网站的内容
3. RSS定义了非常简单的方法来共享和查看标题和内容
4. RSS文件可被自动更新
5. RSS允许为不同的网站进行视图的个性化
6. RSS使用XML编写
RSS被设计用来展示选定的数据。如果没有 RSS,用户就不得不每日都来您的网站检查新的内容。对许多用户来说这样太费时了。通过RSS feed(RSS 通常被称为 News feed 或 RSS feed),用户们可以使用 RSS 聚合器来更快地检查您的网站更新(RSS 聚合器是用来聚集并分类 RSS feed 的网站或软件)。由于RSS 数据很小巧并可快速加载,它可轻易地被类似移动电话或 PDA 的服务使用。拥有相似内容的网站环(Web-rings)可以轻易地在它们的网站共享内容,使这些网站更出色更有价值。
谁应当使用RSS?
那些极少更新内容的网管们不需要RSS!
RSS对那些频繁更新内容的网站是很有帮助的,比如:
新闻站点 列出新闻的标题、日期以及描述
企业 列出新闻和新产品
日程表 列出即将来临的安排和重要日期
站点更新 列出更新过的页面或新的页面
RSS如何工作
使用RSS,您在名为聚合器的公司注册您的内容。
步骤之一是,创建一个RSS 文档,然后使用.xml 后缀来保存它。然后把此文件上传到您的网站。接下来,通过一个RSS 聚合器来注册。每天,聚合器都会到被注册的网站搜索RSS文档,校验其链接,并显示有关 feed 的信息,这样客户就能够链接到使他们产生兴趣的文档。
一个RSS实例文档
RSS文档使用一种简单的自我描述的语法: 让我们看一个简单的RSS文档:
[java]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>W3School Home Page</title>
<link>http://www.w3school.com.cn</link>
<description>Free web building tutorials</description>
<item>
<title>RSS Tutorial</title>
<link>http://www.w3school.com.cn/rss</link>
<description>New RSS tutorial on W3School</description>
</item>
<item>
<title>XML Tutorial</title>
<link>http://www.w3school.com.cn/xml</link>
<description>New XML tutorial on W3School</description>
</item>
</channel>
</rss>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>W3School Home Page</title>
<link>http://www.w3school.com.cn</link>
<description>Free web building tutorials</description>
<item>
<title>RSS Tutorial</title>
<link>http://www.w3school.com.cn/rss</link>
<description>New RSS tutorial on W3School</description>
</item>
<item>
<title>XML Tutorial</title>
<link>http://www.w3school.com.cn/xml</link>
<description>New XML tutorial on W3School</description>
</item>
</channel>
</rss> 文档中的第一行:XML声明 - 定义了文档中使用的XML 版本和字符编码。此例子遵守1.0规范,并使用ISO-8859-1 (Latin-1/West European) 字符集。
下一行是标识此文档是一个RSS文档的RSS 声明(此例是 RSS version 2.0)。
下一行含有 <channel> 元素。此元素用于描述RSS feed。
<channel> 元素有三个必需的子元素:
<title> - 定义频道的标题。(比如 w3school 首页)
<link> - 定义到达频道的超链接 <description> - 描述此频道(比如免费的网站建设教程)
每个<channel>元素可拥有一个或多个 <item> 元素。
每个<item>元素可定义 RSS feed 中的一篇文章或 "story"。
<item> 元素拥有三个必需的子元素:
<title> - 定义项目的标题。(比如 RSS 教程)
<link> - 定义到达项目的超链接 <description> - 描述此项目(比如 w3school 的RSS 教程)
最后,后面的两行关闭 <channel> 和 <rss> 元素。
上面的只是是一个例子,下面来看一下实际应用的Rss:
[java]
?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="/css/rss_xml_style.css"?>
<rss version="2.0">
<channel>
<title>新闻国内</title>
<image>
<title>新闻国内</title>
<link>http://news.qq.com</link>  
补充:移动开发 , Android ,