How to Ingest an RSS Feed in Silverlight | CodeGuru

How to Ingest an RSS Feed in Silverlight

Introduction In this article we will learn how to consume an RSS feed in Silverlight. Additionally we will also look into fetching the results and binding them onto the Silverlight DataGrid. Sample source codes have also been included in this article for demonstration purpose. For the sample application I have used Visual Studio 2010 and […]

Written By
CodeGuru Staff
CodeGuru Staff
Apr 5, 2011
2 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Introduction

In this article we will learn how to consume an RSS feed in Silverlight. Additionally we will also
look into fetching the results and binding them onto the Silverlight
DataGrid. Sample source codes have also been included in this article for
demonstration purpose.

For the sample application I have used Visual Studio 2010 and Silverlight 4.0.

Importance of RSS Feeds

In recent days most of the popular websites, for example
even the Microsoft websites, provided all the updates and new information
through publishing RSS feeds.
Hence in most applications that are developed, the ingestion of the RSS feed
has become almost inevitable. This will facilitate the client application to
process and display the feed content.

So I thought it would be informative to write an article on
ingesting an RSS feed in a Silverlight application.

Supporting Classes in Silverlight

Silverlight is packed with some supporting classes
for the RSS feed ingestion and processing. The namespace to include for making
use of these classes is System.ServiceModel.Syndication. Some of the classes
are listed below.

  • SysdicationContent
  • SyndicationFeed
  • SyndicationItem,
    etc.

The RSS feed response from the given RSS Uri needs to be
fetched using the WebClient class and these syndication classes are for easy
parsing of the RSS feed content.

Sample Code

Create a sample Silverlight application and name it as
RSSFeedIngestionDemo. In the MainPage.xaml define a textbox, a button and a
Silverlight DataGrid. So the idea for the sample application is to provide the
RSS feed url in the textbox and clicking on the button would fetch the
response, parse it and bind the content onto the DataGrid.

Below is the XAML code for MainPage.xaml.

xmlns_x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns_d="http://schemas.microsoft.com/expression/blend/2008"
xmlns_mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc_Ignorable="d"
d_DesignHeight="422" d_DesignWidth="581" xmlns_sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

Below is the code behind implementation in MainPage.xaml.cs
file.

namespace RSSFeedIngestionDemo
{
public partial class MainPage : UserControl
{
WebClient _webClient = null;
public MainPage()
{
InitializeComponent();
_webClient = new WebClient();
_webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
}
private void GetResponseButton_Click(object sender, RoutedEventArgs e)
{
_webClient.OpenReadAsync(new Uri(UriTextBox.Text, UriKind.Absolute));
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
SyndicationFeed syndicationFeed = SyndicationFeed.Load(XmlReader.Create(e.Result));
var feeds = from feedItem in syndicationFeed.Items
select new
{
Title = feedItem.Title,
Content = feedItem.Summary.Text,
NavigateUri = feedItem.Links.FirstOrDefault().BaseUri.AbsoluteUri,
PublishedDate = feedItem.PublishDate,
LastUpdated = feedItem.LastUpdatedTime
};
RssResultsGrid.ItemsSource = feeds;
}
else
MessageBox.Show(string.Format("RSS feed ingestion failed. Failure Message: {0}", e.Error.Message));
}
}
}

In the above code, the WebClient class is used to fetch the
XML response from the given RSS feed Uri. Then the response XML is loaded into
the SyndicationFeed object where the SyndicationFeed.Load(xmlResponse) takes
care of parsing the XML data and populating the SyndicationFeed object.

Now go ahead and run the sample application. Input a valid
RSS Uri and click on the Get Response button. The result is bound to the
Silverlight DataGrid.

Advertisement

Conclusion

Hope this article provides a clear overview of ingesting an
RSS service in Silverlight. Please make use of the comments section to provide
your comments.

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.