当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,