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);
% >





位律師廻複

生活常識_百科知識_各類知識大全»C#+ASP.NET開發基於Web的RSS閲讀器

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情