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

Posted 内容

篇首语:习惯使我们双手机巧,使头脑笨拙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#+ASP.NET开发基于Web的RSS阅读器相关的知识,希望对你有一定的参考价值。

C#+ASP.NET开发基于Web的RSS阅读器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    最近我一直在寻找如何在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 你可以从里得到规范的详细内容   具体的来说 每个项应该在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 PUBLIC //W C//DTD XHTML Transitional//EN 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 = ; 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( 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 + link + target= new > + title + </a></b><br/> );

  Response Write(description + </p> );

  

  

  </script>

  < xmlns= >

  <head runat= server >

  <title>Untitled Page</title>

  </head>

  <body>

  <form id= form runat= server >

  <div>

  <%

  string rssURL = _includes/feeds/codeguru/rss all xml ;

  Response Write( <font size= ><b>Site: + rssURL + </b></font><Br /> );

  ProcessRSSItem(rssURL);

  Response Write( <hr /> );

  rssURL = _includes/feeds/special/dev xml ;

  Response Write( <font size= ><b>Site: + rssURL + </b></font><Br /> );

  ProcessRSSItem(rssURL);

  %>

  </div>

  </form>

  </body>

</>

  显示结果如下

  

> cha138/Article/program/net/201311/12490

相关参考