24 April 2009 HowTo, LINQ, LINQ to XML, RSS Robert Muehsig


It´s very easy to create an RSS using Linq to XML. In my sample I create a ASP.NET page, which offers a RSS Feed. We add also a meta tag so that users can find our RSS Feed.

Project structure:


To let the user know that we offer a RSS Feed we create the following markup in the head of our ASP.NET page:

<head runat="server">
    <title>Untitled Page</title>
    <link rel="alternate" href="Rss.ashx" type="application/rss+xml" title="" id="rss" />

To create a RSS we use directly the ProcessRequest method of the ASHX:

        public void ProcessRequest(HttpContext context)

            XDocument document = new XDocument(
                                    new XDeclaration("1.0", "utf-8", "yes"),
                                    new XElement("rss",
                                        new XAttribute("version", "2.0"),
                                        new XElement("channel", this.CreateElements())

            context.Response.ContentType = "text/xml";

Each time we create a new level of the XML tree we "chain" our XElements and return at the end the XDocument. The RSS Items will be create in a seperate method called "CreateElements":

private IEnumerable<XElement> CreateElements()
            List<XElement> list = new List<XElement>();

            for (int i = 1; i < 100; i++)
                XElement itemElement = new XElement("item",
                                            new XElement("title", i),
                                            new XElement("link", "http://code-inside.de")

            return list;

In this method we create the RSS Items and return this XElement list to the ASHX handler.

As you can see: Creating of an RSS Feed is really simple with Linq to  Xml. :)

[ Download Source Code ]

Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de