ASP.NET: Twitter Feeds per XmlDataSource- und Repeater-Control in Websites einbinden

RSS- bzw. Atom-Feeds von Twitter, Blogs usw. lassen sich sehr einfach mit dem XmlDataSource-Control in die eigene Website einbinden. Dazu ist quasi keine einzige Zeile "richtiger" Code notwendig, sonder lediglich zwei ASP.NET-Controls.

Das Beispiel bezieht sich explizit auf einen Twitter Atom-Feed, lässt sich aber an jeden beliebigen anderen Feed anpassen. Wichtig: Immer genau die XML-Struktur des Feeds über die Quelltextansicht anschauen. Bei Twitter sieht das z.B. so aus:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Twitter / unckel</title>
    <link>http://twitter.com/unckel</link>
    <atom:link type="application/rss+xml" href="http://twitter.com/statuses/user_timeline/23050865.rss" rel="self"/>
    <description>Twitter updates from unckel designworks / unckel.</description>
    <language>en-us</language>
    <ttl>40</ttl>
  <item>
    <title>unckel: tweet tweet!</title>
    <description>unckel: tweet tweet!</description>
    <pubDate>Wed, 18 Nov 2009 07:45:26 +0000</pubDate>
    <guid>http://twitter.com/unckel/statuses/5821036943</guid>
    <link>http://twitter.com/unckel/statuses/5821036943</link>
  </item>
  <item>
    ... usw ...
  </item>
  </channel>
</rss>

Wichtig ist hier also der Inhalt der <items> und das wären insbesondere <title>, <pubDate> und <link>.

<asp:XmlDataSource ID="XmlDataSource1" runat="server" 
	DataFile="http://twitter.com/statuses/user_timeline/23050865.rss"
	XPath="rss/channel/item" EnableCaching="false" />

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
	<a href="<%# XPath("link") %>"><%# XPath("title") %></a><br />
	<%# XPath("pubDate") %><br />
	<hr />
</ItemTemplate>
</asp:Repeater>

Einfach! Oder?

ASP.NET

November 2009 | Permalink | Feedback