Annsa - Useful Code Resources

Consuming an RSS Feed with ASP.NET and XSLT

RSS is a web content syndication format defined using XML. It is used by many sites and blogs to allow their content to be presented and aggregated. For example, the list on the right of this page is produced from an RSS feed from BBC News. You can find out more about RSS here.

This example shows how an external RSS feed can be rendered on a web page (like the one shown here). The example uses a custom ASP.NET control (written in C#) to encapsulate the functionality and simplify its inclusion on any host page. The sample server control uses public properties to allow it to be easily customised by the host page. The control also uses ASP.NET page caching features to limit the requests made by the host page to the remote RSS feed.

View a simple sample page here and its source code here.

The host page needs to include a Register page directive to allow the control to be referenced.

<@% Register TagPrefix="RSSFeed" TagName="ArticleList" Src="rssfeed.ascx" %>

The host page then refers to the control using the TagPrefix and TagName. This reference can also include HTML style attribute settings. These attributes map onto the public properties of the control. In this case they allow the host page to define the RSS feed, the maximum number of items to display and the XSLT to be used to transform the RSS content.

<RSSFeed:ArticleList RSSFeedURL="http://sampleDomain/rssfeed.xml" MaxDisplayItems="10" XSLFile="localSampleTransform.xsl" runat="server" />

The code for the server control can be seen here

The control uses the OutputCache page directive. This means that the control will only request a copy of the RSS field at known intervals. This is important since some RSS Feeds will impose a quota on requests from the same source.

The XSLT uses "local-name()" to avoid namespaces prefix problems and allow a single XSLT to process the widest range of RSS versions. The XSLT also includes CSS Style names in the output HTML (using the Class attribute) to allow the look and feel of the content to be controlled. If a more elaborate style was required, this could be embedded in the XSLT.

A sample XSLT file can be seen here

Alternatives? An ASP.NET DataList control could have been used to render the RSS, with the data loaded from the original XML then into a DataTable. The DataList control could then be bound to the DataTable. This approach avoids the need for an XSLT, but it might be harder to support all the flavours of RSS.

BBC Logo
Gulf states fuel Syria isolation
Gulf Arab states expel Syria's ambassadors, accusing Damascus of shunning Arab efforts to end months of bloodshed, as Russian officials visit President Assad.
New Maldives leader pledges order
New Maldives President Mohammed Waheed Hassan vows to uphold the rule of law following the dramatic resignation of his predecessor Mohamed Nasheed.
Iranian president summoned by MPs
Iran's parliament summons the country's president for questioning - the first time this has happened since the 1979 revolution.
California court backs gay unions
A California court rules that a bar on same-sex unions is unconstitutional, in the latest stage of a long-running battle over the issue in the US state.
LA abuse school removes all staff
The whole staff of a Los Angeles school is to be replaced amid a probe into allegations of sex abuse against two long-serving teachers, officials say.
Uganda MP revives anti-gay bill
The Anti-Homosexuality Bill is reintroduced to Uganda's parliament - without the death penalty but still calling for life in prison for some offences.
Euro 'could survive Greece exit'
Pressure is rising as Greece's government once more postponed a crucial meeting to agree tough reforms, as Europe's leaders openly discuss Greece leaving the euro.
Obama to give back campaign funds
US President Barack Obama's election campaign is to return some $200,000 of funding linked to the family of a Mexican fugitive.
Monaco royals in privacy defeat
The European Court of Human Rights rejects a complaint by Princess Caroline of Monaco, in a ruling backing media rights on celebrity reporting.
'Suicide attack' on Nigeria army
A man in military uniform blows himself up outside a Nigerian army barracks in the city of Kaduna, which is also rocked by other blasts, officials say.
Tue, 07 Feb 2012 22:51:46 GMT