Click here to Skip to main content
12,554,717 members (54,683 online)
Click here to Skip to main content
Add your own
alternative version


22 bookmarked

A class for getting the RSS feed list of a website

, 14 Aug 2007 CPOL
Rate this:
Please Sign up or sign in to vote.
A very simple class for listing the RSS feed from a website.

Screenshot - Untitled-1__Small_.gif

Screenshot - Untitled-2__Small_.gif

Screenshot - Untitled-3.gif


This is a very simple class for getting the RSS feed list of a website. Just parse the website URL in the constructor and you are off.....


FeedListOfWebsite MyFeedList = new FeedListOfWebsite(
   new Uri(""));
if (MyFeedList.Success)
    foreach (FeedDetail fd in MyFeedList.FeedDetails)
        //Some code handle here....

The code

Here is the class constructor:

public FeedListOfWebsite(Uri WebsiteUrl)
//Constructor where you have to parse the Url to look for feed.
    Regex RegX = new Regex("<link.*type=\"application " + 
                 "feedsonwebsite="RegX.Matches(GetHtml(WebsiteUrl));" /> 0)
                 //If we find some link tags then...
        //Set FeedDetail Array
        FeedDetails = new FeedDetail[FeedsOnWebsite.Count];
        int fdi = 0;        //      Array index count up value
        foreach (Match Feed in FeedsOnWebsite)
        //Loop through the link tags
            //Extract data from the html line
            FeedDetails[fdi] = ExtractFeed(Feed.Value.ToString());
            fdi++;      //Count Array index 1 up
        _success = true;

Here are the private functions of the class:

private string GetHtml(Uri UriPath)
//a Function for getting HTML code of a website.
        //Create a Response
        HttpWebResponse Hwr = (HttpWebResponse)WebRequest.Create(UriPath).GetResponse();
        Stream Hwrstrm = Hwr.GetResponseStream();        //Get streamet data
        StreamReader HwrSr = new StreamReader(Hwrstrm);  //Create a streamreader
        string strHTML = HwrSr.ReadToEnd();              //Read all data from website.
        HwrSr.Dispose();                                 //Dispose object
        Hwrstrm.Dispose();                               //Dispose object
        Hwr.Close();                                     //Close object
        return strHTML;                                  //Return HTML code of website
        return "";  //Return empty string apon error.

private FeedDetail ExtractFeed(string HtmlLine)
//a Function for extracting feed data from a HTML code
    string name = "";
    string url = "";
    #region Find The Title

        Match Title = Regex.Match(HtmlLine, "(?<=title=).*");
        if (Title.Success)
            int EndOfTitle = Title.Value.ToString().IndexOf("\"", 1);
            if (EndOfTitle == -1)
            { EndOfTitle = Title.Value.ToString().IndexOf("'", 1); }
            name = Title.Value.ToString().Substring(0, EndOfTitle);
            name = name.Replace("\"", "").Replace("'", "");
    catch { name = "[Error finding name...]"; }


    #region Find the url

        Match Url = Regex.Match(HtmlLine, "(?<=href=).*");
        if (Url.Success)
            int EndOfHref = Url.Value.ToString().IndexOf(" ", 1);
            if (EndOfHref == -1) { EndOfHref = Url.Value.ToString().IndexOf("\"", 1); }
            if (EndOfHref == -1) { EndOfHref = Url.Value.ToString().IndexOf("'", 1); }
            url = Url.Value.ToString().Substring(0, EndOfHref);
            url = url.Replace("\"", "").Replace("'", "");
    catch { url = ""; }


    return new FeedDetail(new Uri(url), name);


  • Updated the code after Marc Jacobi pointed out some basic stuff.
  • I have added one more class, just to illustrate working with RSS feeds.
  • The classes added are the following:

    • RssFeed
    • RssFeedEntries (sub class of RssFeed, holds all entries from the feed)
    • RssFeedEntry (sub class of RssFeedEntries, holds data for each entry in the feed)

    I didn't have the time to write the description for these classes. I am sorry... so it is posted as is.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

You may also be interested in...


Comments and Discussions

Generalsmall bugfix Pin
kostik_y2k13-Sep-07 6:11
memberkostik_y2k13-Sep-07 6:11 
GeneralRe: small bugfix Pin
PawJershauge1-Oct-07 10:31
memberPawJershauge1-Oct-07 10:31 
GeneralTry using 'using' Pin
Obiwan Jacobi14-Aug-07 1:59
memberObiwan Jacobi14-Aug-07 1:59 
GeneralRe: Try using 'using' Pin
PawJershauge14-Aug-07 2:14
memberPawJershauge14-Aug-07 2:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.161021.1 | Last Updated 14 Aug 2007
Article Copyright 2007 by Paw Jershauge
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid