RSS Feed is very popular in Internet. This tutorial will show you how to create a RSS Reader using ASP.NET 2.0 and VB.NET.
At first, import the namespace of System.Net, System.IO, and System.Xml
| Imports System.Net Imports System.IO Imports System.Xml |
In this sample, we created a simple function to process the RSS feed from a sample URL. This function define a string of rssURL as its parameter. This string contains the RSS's URL. It will use the value of rssURL to create a WebRequest.
WebRequest is the abstract base class for the .NET Framework's request/response model for accessing data from the Internet. An application that uses the request/response model can request data from the Internet in a protocol-agnostic manner, in which the application works with instances of the WebRequest class while protocol-specific descendant classes carry out the details of the request.
Requests are sent from an application to a particular URI, such as a Web page on a server. The URI determines the proper descendant class to create from a list of WebRequest descendants registered for the application. WebRequest descendants are typically registered to handle a specific protocol, such as HTTP or FTP, but can be registered to handle a request to a specific server or path on a server.
We moved our web sites to Server Intellect and have found them to be incredibly professional. Their setup is very easy and we were up and running in no time.
The response to this request will be put into WebResponse object. The WebResponse class is the abstract base class from which protocol-specific response classes are derived. Applications can participate in request and response transactions in a protocol-agnostic manner using instances of the WebResponse class while protocol-specific classes derived from WebResponse carry out the details of the request. Client applications do not create WebResponse objects directly; they are created by calling the GetResponse method on a WebRequest instance.After then, the WebResponse object will be used to create a stream to get the XML data. Stream is the abstract base class of all streams. A stream is an abstraction of a sequence of bytes, such as a file, an input/output device, an inter-process communication pipe, or a TCP/IP socket. The Stream class and its derived classes provide a generic view of these different types of input and output, isolating the programmer from the specific details of the operating system and the underlying devices. The we used a XmlDocument to store the stream data. XmlDocument manipulating the data of XML, finally read the RSS contents from Feed.
| Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim rssURL As String = "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 />") Call ProcessRSSItem(rssURL) End Sub Private Sub ProcessRSSItem(ByVal rssURL As String) Dim myRequest As WebRequest = System.Net.WebRequest.Create(rssURL) End SubDim myResponse As WebResponse = myRequest.GetResponse() Dim rssStream As Stream = myResponse.GetResponseStream() Dim rssDoc As New XmlDocument() rssDoc.Load(rssStream) Dim rssItems As XmlNodeList = rssDoc.SelectNodes("rss/channel/item") Dim title As String = "" Dim link As String = "" Dim description As String = "" Dim i As Integer For i = 0 To rssItems.Count - 1 Dim rssDetail As XmlNode NextrssDetail = rssItems.Item(i).SelectSingleNode("title") If rssDetail.Equals(Nothing) = False Then title = rssDetail.InnerText Else title = "" End IfrssDetail = rssItems.Item(i).SelectSingleNode("link") If rssDetail.Equals(Nothing) = False Then link = rssDetail.InnerText Else link = "" End IfrssDetail = rssItems.Item(i).SelectSingleNode("description") If rssDetail.Equals(Nothing) = False Then description = rssDetail.InnerText Else description = "" End IfResponse.Write("<p><b><a href='" + link + "' target='new'>" + title + "</a></b><br/>") Response.Write(description + " ") |
I just signed up at Server Intellect and couldn't be more pleased with my Windows Server! Check it out and see for yourself.
The front end Default.aspx page looks something like this:| <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>RSS</title> </head> <body> <form id="form1" runat="server"> <div> <fieldset style="height: 383px"> <legend><strong>RSS</strong></legend><br /> </fieldset> </div> </form> </body> </html> |
Try Server Intellect for Windows Server Hosting. Quality and Quantity!
The flow for the code behind page as follows.| Imports System.Net Imports System.IO Imports System.Xml Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim rssURL As String = "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 />") Call ProcessRSSItem(rssURL) End Sub Private Sub ProcessRSSItem(ByVal rssURL As String) Dim myRequest As WebRequest = System.Net.WebRequest.Create(rssURL) End SubDim myResponse As WebResponse = myRequest.GetResponse() Dim rssStream As Stream = myResponse.GetResponseStream() Dim rssDoc As New XmlDocument() rssDoc.Load(rssStream) Dim rssItems As XmlNodeList = rssDoc.SelectNodes("rss/channel/item") Dim title As String = "" Dim link As String = "" Dim description As String = "" Dim i As Integer For i = 0 To rssItems.Count - 1 Dim rssDetail As XmlNode NextrssDetail = rssItems.Item(i).SelectSingleNode("title") If rssDetail.Equals(Nothing) = False Then title = rssDetail.InnerText Else title = "" End IfrssDetail = rssItems.Item(i).SelectSingleNode("link") If rssDetail.Equals(Nothing) = False Then link = rssDetail.InnerText Else link = "" End IfrssDetail = rssItems.Item(i).SelectSingleNode("description") If rssDetail.Equals(Nothing) = False Then description = rssDetail.InnerText Else description = "" End IfResponse.Write("<p><b><a href='" + link + "' target='new'>" + title + "</a></b><br/>") Response.Write(description + " ") End Class |
No comments:
Post a Comment