知识大全 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
相关参考