Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Build a Blog Page Consuming a XML Feed

0.00/5 (No votes)
2 Nov 2011 3  
How to build a blog page using an XML feed

Screenshot - buildrssblog2.gif

Introduction

In this article, I'll show a code snippet I made in order to create a small blog using the web feed provided by another blog engine.

The Code

Let's see the snippet that retrieves the data from the feed:

protected void dataBind()
{
    //open RSS xml file

    XmlTextReader reader =
        new XmlTextReader("http://www.compranapoli.it/blog/rss.xml");

    DataSet ds = new DataSet();
    ds.ReadXml(reader); //put the rss in a dataset

    // Assigns the datset to the datagrid
    GridView1.DataSource = ds.Tables[2];

    // Binds the datagrid
    GridView1.DataBind();
}

The method dataBind() opens the file rss.xml using a XmlTextReader, puts the content in a DataSet and sets one of the tables of the dataset to the GridView I used to show the data.
This is the code I made to modify the look and feel of the GridView:

<asp:GridView ID="GridView1" runat="server" 
        AutoGenerateColumns="false" BorderWidth="0"/>
 <Columns>
   <asp:TemplateField>
     <ItemTemplate>
      <h1><%# Eval("title") %></h1>
      <hr />
      <h4><%# Eval("pubDate")%></h4><br />
      <%# Eval("description")%><br /><br />
     </ItemTemplate>
   </asp:TemplateField>
 </Columns>
</asp:GridView>

The GridView doesn't handle the paging of the XML data source by default. So, I needed to add the following method to handle the paging:

// Grid View Paging 

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
}

This is the result I had calling dataBind() on page load and using an elegant CSS:

Screenshot - buildrssblog1.jpg

History

  • [2-OCT-2007]: First version of the XML parser classes released
  • [4-OCT-2007]: Added source files
  • [31-OCT-2011]: Main revision of the article, the code is the same as before

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here