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

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

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

最近,我一直在寻找在网页上显示RSS提要的方法。我选择C#和ASP.net作为工具。我创建了一个简单的处理函数来处理从URL获得的RSS提要。你可以直接使用这个简单的函数,或者把它转换成你想要的函数。

此函数使用字符串rssURL作为其参数。该字符串包含RSS的URL。它使用rssURL的值来构建WebRequest项:

系统。Net.WebRequest myRequest = System。net . webrequest . create(RSS URL);

对此请求的响应将放在WebResponse对象中:

系统。net . WebResponse my response = my request。GetResponse();

然后,这个WebResponse对象用于构建一个流来获取XML的值:

系统。IO.Stream rssStream = myResponse。GetResponseStream();

然后,可以使用XMLDocument对象将XML内容存储在流中。XmlDocument对象用于调入XML的内容:

系统。XmlDocument rssDoc =新系统。XML . XML document();
rssDoc。load(RSS stream);

因为RSS提要不仅仅是一个XML文件,所以我们可以假设它包含一些RSS标准。这里,我们假设使用RSS 2.0。你可以从http://blogs.law.harvard.edu/tech/rss.得到说明书的细节

具体来说,每个条目都应该在rss/channel/中。使用XPath表达式,可以创建一个项目节点列表,如下所示:

系统。Xml.XmlNodeList rssItems = rssDoc。select nodes(" RSS/channel/item ");

RssItems存储从RSS获取所有项目节点的信息。通过这种方式,我们可以在内部获得我们需要的信息。这里将显示每个项目的标题、链接和描述。存储在rssItems中的每个项目和标记元素都可以通过SelectSingleNode方法提取。返回值将被赋给一个XMLNode对象。下面的代码获取一个标题节点:

系统。Xml . XmlNode rssDetail
rssDetail = rssItems。项目(一)。SelectSingleNode(" title ");

现在需要提取标签。使用InnerText可以做到这一点。在调用SelectSingleNode之后,可以使用rssDetail来测试格式化的RSS XML是否包含一些标签:

if (rssDetail!= null) { title = rssDetail。InnerText} else { title =}

这样,您就完成了从一个提要获取RSS内容。剩下的工作就是调用这个方法来显示提要的内容。下面是一个使用ASP的完整例子。网络:

< %@ Page Language="C# " >

< script runat = " server " >
public void processors sitem(string RSS URL)
{
System。Net.WebRequest myRequest = System。net . webrequest . create(RSS URL);
系统。net . WebResponse my response = my request。GetResponse();

系统。IO.Stream rssStream = myResponse。GetResponseStream();
系统。XmlDocument rssDoc =新系统。XML . XML document();
rssDoc。load(RSS stream);

系统。Xml.XmlNodeList rssItems = rssDoc。select nodes(" RSS/channel/item ");

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

for(int I = 0;i < rssItems。数数;i++)
{
系统。Xml . XmlNode rssDetail

rssDetail = rssItems。项目(一)。SelectSingleNode(" title ");
if (rssDetail!= null)
{
title = RSS detail。InnerText
}
else
{
title = " ";
}

rssDetail = rssItems。项目(一)。SelectSingleNode(" link ");
if (rssDetail!= null)
{
link = RSS detail。InnerText
}
else
{
link = " ";
}

rssDetail = rssItems。项目(一)。SelectSingleNode(" description ");
if (rssDetail!= null)
{
description = RSS detail。InnerText
}
else
{
description = " ";
}

回应。写("+link+" ' target = ' new ' > "+title+" < br/> ");
响应。写(描述+"

");
}
}

< html xmlns = " http://www . w3 . org/1999/XHTML " >
< head runat = " server " >
< title >无标题页面

< body >
< form id = " form 1 " runat = " server " >
< div >
< %
string RSS URL = " http://www
响应。编写(" < font size = 5 > < b > Site:"+RSS URL+" < Br/> ");
processrsstitem(RSS URL);
响应。写(" < HR/> ");

RSS URL = " http://www . developer . com/ICOM _ includes/feeds/special/dev-5 . XML ";
响应。编写(" < font size = 5 > < b > Site:"+RSS URL+" < Br/> ");
processrsstitem(RSS URL);
% >





位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C#+ASP.NET开发基于Web的RSS阅读器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情