1 / 31

第 8 章 RSS

第 8 章 RSS. RSS 是 Web 2.0 的重要元素。 RSS 是 Really Simple Syndication 的简称,它是一种网页内容联合格式( Web Content Sydication Format )。本章将介绍 RSS 文档的规范、如何创建一个简单的 RSS 文档、订阅 RSS 源的方法,并创建一个基于 Web 的 RSS 阅读器来阅读订阅的 RSS 源。其中,该 RSS 阅读器的效果,本章网络应用程序(网站)的名称为 RSS 。. 8.1 什么是 RSS.

bin
Download Presentation

第 8 章 RSS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 RSS • RSS是Web 2.0的重要元素。RSS是Really Simple Syndication的简称,它是一种网页内容联合格式(Web Content Sydication Format)。本章将介绍RSS文档的规范、如何创建一个简单的RSS文档、订阅RSS源的方法,并创建一个基于Web的RSS阅读器来阅读订阅的RSS源。其中,该RSS阅读器的效果,本章网络应用程序(网站)的名称为RSS。

  2. 8.1 什么是RSS • 本小节将介绍RSS的基础知识。内容包括RSS的定义、RSS文档的格式、RSS的技术规范,以及目前比较流行的RSS的阅读器。

  3. 8.1.1 RSS概述 • RSS文档也是一种XML文档。因此,RSS文档都必须遵循XML 1.0规范(该规范发布在W3C网站上)。目前,RSS存在多个版本:0.91(2000年)、0.92(2000年12月)、0.94(2002年8月)、2.0.1(2002年)等。在每一个RSS文档的开头处,存在一个<rss>元素。该元素包含属性version,该属性指定RSS文档的版本。下面代码标识了RSS文档的版本为2.0版本。 • <rss version="2.0">

  4. 8.1.2 RSS技术规范 • 本小节将介绍RSS文档的技术规范,主要包括RSS文档的数据类型和元素。 • 1.数据类型 • 2.元素

  5. 8.1.3 目前流行的RSS阅读器 • 随着RSS摘要数量的增加,RSS阅读器已经成为了Web 2.0世界里面的一个必需品。它可以帮助用户发现和组织感兴趣的频道列表,并提供统一的阅读界面。下面将介绍国内外目前比较流行的RSS阅读器。 • 1.看天下(www.kantianxia.com) • 2.新闻蚂蚁(www.newsants.com) • 3.周博通(www.zhoubotong.com) • 4.资讯通(www.hc360.com) • 5.新浪点点通

  6. 8.2 总体功能设计和数据库设计 • 应用程序RSS主要实现RSS订阅、RSS阅读器两大功能。其中,RSS订阅包括订阅互联网上包含RSS新闻的页面等功能。RSS阅读器包括读取RSS页面的内容,并解释该页面的功能。

  7. 8.2.1 总体功能设计 • 应用程序RSS主要实现了RSS订阅和RSS阅读器两大功能。其中,RSS订阅主要处理RSS源。RSS阅读器主要处理RSS页面的内容。具体说明如下: • 1.RSS订阅 • 2.RSS阅读器

  8. 8.2.2 表设计 • 应用程序RSS的数据库比较简单,它仅仅包含一个表——RSSUrl。该表存储RSS页面的链接地址。RSS阅读器将读取该表中存储地址的页面的内容。下面对RSS外链接地址表RSSUrl作下介绍。

  9. 8.3 应用程序RSS • 本小节主要介绍应用程序RSS的组成,及其通用模块的设计。其中,该应用程序由Web窗体页、类文件、主题文件、资源文件等组成。通用模块包括一个名称为“模块标题”的用户控件ModuleTitle.ascx,它存放在UserControl目录下。 • 8.3.1 应用程序RSS的组成 • 应用程序RSS包含Admin、App_Code、App_Themes、Bin、Portal和UserControl目录,以及页面Default.aspx、配置文件Web.Config、全局文件Global.asax等。展开Admin和Portal目录,在【解决方案资源管理器】面板中查看应用程序RSS组成,如图8.3所示。应用程序RSS的各个目录和文件的功能具体说明如下: • Admin目录,主要包含超级管理员使用的后台管理页面,如注册新用户、用户管理等页面。

  10. 8.3.2 配置文件Web.Config • 应用程序RSS的配置文件Web.Config放置在其根目录下。笔者在该文件中配置了访问数据库Web2ASPNET2DB的链接字符串“data source=localhost;userid=sa;pwd=123456;database=Web2ASPNET2DB”。同时还配置了应用程序RSS的验证方式为“Windows”。

  11. 8.3.3 添加应用程序的引用文件 • 应用程序RSS使用了3个基础工程(第2章已经详细介绍过)中的功能。在此,笔者该应用程序中添加了这三个引用(即文件的后缀名为.dll)。它们具体为: • Web2ASPNET2.CommonOperation.dll。 • Web2ASPNET2.OperateSqlServer.dll。 • Web2ASPNET2.UserCommonOperation.dll。

  12. 8.3.4 主页Default.aspx • 应用程序RSS的主页Default.aspx特别简单。该页面在Page_Load(object sender, EventArgs e)事件中重定向到用户登录页面UserLogin.aspx。程序代码如下所示。 • protected void Page_Load(object sender,EventArgs e) • { • Response.Redirect("~/Portal/UserLogin.aspx"); ///重定向到登录页面 • }

  13. 8.3.5 通用模块设计 • 应用程序RSS中的通用模块设计只包含一个名称为“模块标题”的用户控件。实现该控件的文件为ModuleTitle.ascx,它的代码隐藏文件为ModuleTitle.ascx.cs。该用户控件的设计界面,

  14. 8.4 关键技术详解 • 本小节将介绍应用程序RSS中的关键技术——创建一个简单的RSS页面。在此,笔者定义了名称为SampleRss的类,它专门用来创建一个简单的RSS页面。类SampleRss定义了创建RSS页面的头部、Item项、尾部,以及输出RSS页面等方法。具体方法如下所示。 • (1)private XmlTextWriter WriteRSSHeader(XmlTextWriter writer),创建RSS页面的头部。 • (2)private XmlTextWriter WriteRSSItem(XmlTextWriter writer, string title,string link, string description),创建RSS页面的Item项。

  15. 8.4.1 创建RSS页面的头部 • 方法WriteRSSHeader(XmlTextWriter writer)创建RSS页面的头部。它通过XmlTextWriter对象writer输出RSS页面必须的内容,如RSS页面的标志(rss)、版本、频道的标题、频道的链接、频道的描述、版权信息等。

  16. 8.4.2 创建RSS的Item项 • 方法WriteRSSItem(XmlTextWriter writer, string title,string link,string description)和方法WriteRSSItem(XmlTextWriter writer,RSSItem item)都是创建RSS页面的Item项。其中,第一个方法只向页面输出Item的标题、链接和描述。第二个方法可以输出Item的所有属性。

  17. 8.4.3 创建RSS页面的尾部 • 方法WriteRSSTailer(XmlTextWriter writer)创建RSS页面的尾部。它通过XmlTextWriter对象writer输出RSS页面的结尾内容,如RSS页面的结束标志(</rss>)等。程序代码如下所示。

  18. 8.4.4 输出RSS页面 • 方法CreateSampleRss(HttpResponse response,params RSSItem[]items)创建一个RSS页面,即在网页上输出RSS页的内容。它首先调用方法WriteRSSHeader(XmlTextWriter writer)创建RSS页面的头部;然后调用方法WriteRSSItem(XmlTextWriter writer,RSSItem item)创建RSS页面的Item项;最后调用方法WriteRSSTailer(XmlTextWriter writer)创建RSS页面的尾部。

  19. 8.4.5 创建一个简单的RSS页面 • 页面SampleRSS.aspx创建一个简单RSS页面,它的代码隐藏文件为SampleRSS.aspx.cs。该页面的最终效果, • RSS页面SampleRSS.aspx在Page_Load(object sender,System.EventArgs e)事件中创建了两个Item项,并设置了每一个Item项的Title、Link、Description属性的值。最后调用SampleRss类的方法CreateSampleRss(HttpResponse response,params RSSItem[] items)输出这两个Item项,即创建为一个简单RSS页面。Page_Load(object sender,System.EventArgs e)事件的程序

  20. 8.5 订阅RSS • 本小节主要介绍应用程序RSS中与订阅RSS相关的功能,如订阅RSS源、修改已经订阅的RSS源、RSS源管理等。

  21. 8.5.1 数据访问层设计 • 类Url定义了订阅RSS功能的数据访问层的操作。该类定义的方法如下: • public DataSet GetUrls(),获取所有订阅的RSS源。 • public SqlDataReader GetSingleUrl(int urlID),获取单个订阅的RSS源。 • public int AddUrl(string name,string url),订阅RSS源。 • public int UpdateUrl(int urlID,string name,string url),修改订阅的RSS源。 • public int DeleteUrl(int urlID),删除订阅的RSS源。

  22. 8.5.2 存储过程 • 8.5.1小节中的类Url使用了5个存储过程。这5个存储都操作RSSUrl表,说明如下所示。 • Pr_GetRSSUrls,获取所有订阅的RSS源。 • Pr_GetSingleRSSUrl,获取单个订阅的RSS源。 • Pr_AddRSSUrl,订阅RSS源。 • Pr_UpdateRSSUrl,修改订阅的RSS源。 • Pr_DeleteRSSUrl,删除订阅的RSS源。

  23. 8.5.3 订阅RSS源 • 订阅RSS源由页面AddUrl.aspx实现,它的代码隐藏文件为AddUrl.aspx.cs。该页面实现功能如下。 • 输入新RSS源的名称和URL。 • 添加新RSS源,并把新RSS源的信息提交到数据库中。 • 返回到RSS源管理页面UrlManage.aspx。

  24. 8.5.4 修改RSS源 • 修改RSS源由页面UpdateUrl.aspx实现,它的代码隐藏文件为UpdateUrl.aspx.cs。该页面实现功能如下。 • 编辑RSS源的名称和URL。 • 修改RSS源,并把修改后的RSS源信息提交到数据库中。 • 返回到RSS源管理页面UrlManage.aspx。

  25. 8.5.5 RSS源管理 • RSS源管理由页面UrlManage.aspx实现,它的代码隐藏文件为UrlManage.aspx.cs。该页面实现功能如下。 • 以列表形式显示RSS源的信息。 • 提供重定向到添加和修改RSS源页面的按钮。 • 提供删除RSS源的功能。

  26. 8.6 RSS阅读器 • 本小节主要介绍应用程序RSS中与RSS阅读器相关的功能,如订阅RSS的频道、读取RSS的频道、订阅RSS的Item、读取RSS的Item等。在此,笔者定义了类RSSItem和RSSChannel实现上述功能。这两个类都被定义在命名空间Web2ASPNET2.WebRSS中,

  27. 8.6.1 定义RSS的Item • 在下述程序代码中,类RSSItem用来表示RSS的Item。它属于Web2ASPNET2.WebRSS命名空间。RSSItem类定义了一个字典字段attributes。它是一个集合,用来保存Item的子元素的名称及其值。另外,该字典在类RSSItem的构造函数中初始化,并通过属性Attributes公开该字典。

  28. 8.6.2 定义RSS的频道 • 在下述程序代码中,类RSSChannel用来表示RSS的频道(Channel)。它被定义在命名空间Web2ASPNET2.WebRSS中。 • 注意:类RSSChannel继承于RSSItem类,并且还定义了保存RSS源的URL的私有字段url。 • 类RSSChannel也定义了一个字典字段items。它是一个集合,用来保存Channel的子元素(如Item、Name等)的名称及其值。另外,该字典在类RSSChannel的构造函数中初始化,并通过属性Items公开该字典。

  29. 8.6.3 读取RSS的Item • 在下述程序代码中,类RSSChannel定义了读取RSS的Item的私有方法private RSSItem ReadItem(XmlTextReader reader,string name)。该方法读取Item的每一个子元素的值,并创建一个RSSItem对象最为方法的返回结果。

  30. 8.6.4 读取RSS频道 • 在下述程序代码中,类RSSChannel定义了读取RSS频道的方法ReadChannel()。该方法根据字段url获取网站的数据,并检索每一个频道的数据。其具体步骤如下: • (1)根据URL创建读取网页内容的XmlTextReader对象reader。 • (2)调用reader的方法Read()读取内容中的每一个元素。 • (3)如果元素的名称为“item”,则调用方法ReadItem(XmlTextReader reader,string name)该其值,并添加到到字典items中。

  31. 8.6.5 在网页中显示RSS内容 • RSS阅读器使用了三个Web窗体页:Index.aspx、LeftUrl.aspx和ViewRSS.aspx。其中,第一个页面为母页面,它的左边放置页面LeftUrl.aspx,右边放置页面ViewRSS.aspx。页面LeftUrl.aspx显示被订阅的RSS源名称。页面ViewRSS.aspx将显示页面LeftUrl.aspx中被选择的RSS源的内容。RSS阅读器的最终效果,

More Related