`

C#+ASP.NET开发基于Web的RSS阅读器

阅读更多

C#+ASP.NET开发基于Web的RSS阅读器

作者来源
阅读 190 人次,2006-4-27 9:52:00


  最近我一直在寻找如何在web页面上显示RSS Feed的方法,我选择 C#和ASP.NET作为工具。我创建了一个简单的处理函数来处理从一个URL获得的RSS Feed。你可以直接使用这个简单的函数,或者改造成你想要的功能。

  这个函数使用一个字符串rssURL作为它的参数。这个字符串包含了RSS的URL。它使用rssURL的值建立了一个WebRequest项:

System.Net.WebRequest myRequest = System.Net.WebRequest.Create(rssURL);

  这个请求的响应将会被放到一个WebResponse对象里:

System.Net.WebResponse myResponse = myRequest.GetResponse();

  然后这个WebResponse对象被用来建立一个流来取出XML的值:

System.IO.Stream rssStream = myResponse.GetResponseStream();

  然后可以使用一个XmlDocument对象来存储流中的XML内容。XmlDocument对象用来调入XML的内容:

System.Xml.XmlDocument rssDoc = new System.Xml.XmlDocument();
rssDoc.Load(rssStream);

  因为RSS Feed不只是一个XML文件,我们可以假设里面包含了一些RSS标准的规定。这里,我们假设使用了RSS 2.0。你可以从http://blogs.law.harvard.edu/tech/rss里得到规范的详细内容。

  具体的来说,每个项应该在rss/channel/里。使用XPath表达,一个项节点列表可以如下方式创建:

System.Xml.XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");

  rssItems存储了从RSS里获得所有项节点的信息。这样就可取得内部所需要的信息了。这里,标题、链接和每个项的描述将会被显示。在rssItems中存储的每个项,每个标记(tag)元素都可以用SelectSingleNode方法提取出来。返回的值将被赋给一个XMLNode对象。以下代码获取了一个标题节点:

System.Xml.XmlNode rssDetail;
rssDetail = rssItems.Item(i).SelectSingleNode("title");

  现在标记需要被提取出来,使用InnerText完成这项工作。在调用SelectSingleNode之后,可以用rssDetail来测试格式化的RSS XML是否包含某些标记:

if (rssDetail != null) { title = rssDetail.InnerText; } else { title = ""; }

  这样,你就完成了从一个Feed里获取RSS内容的工作。剩下的工作就是调用这个方法来显示Feed的内容了。以下是一个使用ASP.NET完成的完整的例子:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
public void ProcessRSSItem(string rssURL)
{
 System.Net.WebRequest myRequest = System.Net.WebRequest.Create(rssURL);
 System.Net.WebResponse myResponse = myRequest.GetResponse();

 System.IO.Stream rssStream = myResponse.GetResponseStream();
 System.Xml.XmlDocument rssDoc = new System.Xml.XmlDocument();
 rssDoc.Load(rssStream);

 System.Xml.XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");

 string title = "";
 string link = "";
 string description = "";

 for (int i = 0; i < rssItems.Count; i++)
 {
  System.Xml.XmlNode rssDetail;

  rssDetail = rssItems.Item(i).SelectSingleNode("title");
  if (rssDetail != null)
  {
   title = rssDetail.InnerText;
  }
  else
  {
   title = "";
  }

  rssDetail = rssItems.Item(i).SelectSingleNode("link");
  if (rssDetail != null)
  {
   link = rssDetail.InnerText;
  }
  else
  {
   link = "";
  }

  rssDetail = rssItems.Item(i).SelectSingleNode("description");
  if (rssDetail != null)
  {
   description = rssDetail.InnerText;
  }
  else
  {
   description = "";
  }

  Response.Write("<p><b><a href='" + link + "' target='new'>" + title + "</a></b>
");
  Response.Write(description + "</p>");
 }
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%
 string rssURL = "http://www.codeguru.com/icom_includes/feeds/codeguru/rss-all.xml";
 Response.Write("<font size=5><b>Site: " + rssURL + "</b></font><Br />");
 ProcessRSSItem(rssURL);
 Response.Write("<hr />");

 rssURL = "http://www.developer.com/icom_includes/feeds/special/dev-5.xml";
 Response.Write("<font size=5><b>Site: " + rssURL + "</b></font><Br />");
 ProcessRSSItem(rssURL);
%>
</div>
</form>
</body>
</html>

  显示结果如下:

C#+ASP.NET开发基于Web的RSS阅读器(图一)
分享到:
评论

相关推荐

    asp.net RSS阅读器

    完整的asp.net RSS阅读器~~包含完整的数据库和精致的界面~~毕业设计哦

    完全手册ASP.NET AJAX实用开发详解 源码

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个...C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, C#]...

    完全手册:ASP.NET AJAX实用开发详解 part3

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    完全手册:ASP.net Ajax电子教程

    全书从易到难、由浅入深、循序渐进系统...并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。.

    完全手册:ASP.net.Ajax

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    ASP.NET开发典型模块大全(C#)23到26章源码

    《ASP.NET开发典型模块大全》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术、全面地介绍了如何使用ASP.NET进行各领域的Web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,...

    完全手册:ASP.net Ajax电子教程-part2

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    完全手册:ASP.net Ajax电子教程-part1

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    rss阅读器客户端的实现

    基于xml,asp.net的rss阅读器的开发

    ASP.NET 3.5从入门到精通(作者赵晓东,张正礼,许小荣)第6章

    【书 名】ASP.NET 3.5从入门到精通 【作 者】赵晓东,张正礼,许小荣编著 【出版社】清华大学出版社 【出版日期】2009.07 第1章 .NET框架 第2章 Visual studio2008开发环境 ...第22章 在线RSS阅读器

    RSS阅读器

    asp.net+C# RSS阅读器

    ASP.NET 3.5从入门到精通(作者赵晓东,张正礼,许小荣)第2章

    【书 名】ASP.NET 3.5从入门到精通 【作 者】赵晓东,张正礼,许小荣编著 【出版社】清华大学出版社 【出版日期】2009.07 第1章 .NET框架 第2章 Visual studio2008开发环境 ...第22章 在线RSS阅读器

    ASP.NET 3.5从入门到精通(作者赵晓东,张正礼,许小荣)第3章

    【书 名】ASP.NET 3.5从入门到精通 【作 者】赵晓东,张正礼,许小荣编著 【出版社】清华大学出版社 【出版日期】2009.07 第1章 .NET框架 第2章 Visual studio2008开发环境 ...第22章 在线RSS阅读器

    ASP.NET 3.5从入门到精通(作者赵晓东,张正礼,许小荣)第7章

    【书 名】ASP.NET 3.5从入门到精通 【作 者】赵晓东,张正礼,许小荣编著 【出版社】清华大学出版社 【出版日期】2009.07 第1章 .NET框架 第2章 Visual studio2008开发环境 ...第22章 在线RSS阅读器

    ASP.NET 3.5从入门到精通(作者赵晓东,张正礼,许小荣)第4章

    【书 名】ASP.NET 3.5从入门到精通 【作 者】赵晓东,张正礼,许小荣编著 【出版社】清华大学出版社 【出版日期】2009.07 第1章 .NET框架 第2章 Visual studio2008开发环境 ...第22章 在线RSS阅读器

    ASP.NET2.0典型模块(17-22)ASP.NET2.0典型模块(1-16)

    RSS工具包 Microsoft提供的RSS工具组件 源代码\SimpleReader.aspx 简单RSS阅读器 源代码\ ComplexRSS.aspx 复杂RSS阅读器 <br>第6章(\C06) 示例描述:本章介绍了在线编辑器的原理及实现。...

    完全手册ASP、NET AJAX实用开发详解光盘

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    亮剑.NET深入体验与实战精要2

    6.6 项目案例2:在线实现RSS阅读器 270 本章常见技术面试题 275 常见面试技巧之经典问题巧回答 275 本章小结 276 第7章 Web Service开发详解 277 7.1 Web Service基本概念 278 7.2 Web Service的应用场景 278 7.3 ...

    亮剑.NET深入体验与实战精要3

    6.6 项目案例2:在线实现RSS阅读器 270 本章常见技术面试题 275 常见面试技巧之经典问题巧回答 275 本章小结 276 第7章 Web Service开发详解 277 7.1 Web Service基本概念 278 7.2 Web Service的应用场景 278 7.3 ...

Global site tag (gtag.js) - Google Analytics