{"id":189,"date":"2009-11-06T23:23:09","date_gmt":"2009-11-06T22:23:09","guid":{"rendered":"http:\/\/unckel.com\/blog\/?p=189"},"modified":"2019-12-07T22:09:31","modified_gmt":"2019-12-07T21:09:31","slug":"asp-net-twitter-feeds-per-xmldatasource-und-repeater-control-in-websites-einbinden","status":"publish","type":"post","link":"https:\/\/unckel.de\/blog\/asp-net-twitter-feeds-per-xmldatasource-und-repeater-control-in-websites-einbinden\/","title":{"rendered":"ASP.NET: Twitter Feeds per XmlDataSource- und Repeater-Control in Websites einbinden"},"content":{"rendered":"<p>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 &#8222;richtiger&#8220; Code notwendig, sonder lediglich zwei ASP.NET-Controls.<\/p>\n<p>Das Beispiel bezieht sich explizit auf einen Twitter Atom-Feed, l\u00e4sst sich aber an jeden beliebigen anderen Feed anpassen. Wichtig: Immer genau die XML-Struktur des Feeds \u00fcber die Quelltextansicht anschauen. Bei Twitter sieht das z.B. so aus:<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;rss xmlns:atom=\"http:\/\/www.w3.org\/2005\/Atom\" version=\"2.0\"&gt;\n  &lt;channel&gt;\n    &lt;title&gt;Twitter \/ unckel&lt;\/title&gt;\n    &lt;link&gt;http:\/\/twitter.com\/unckel&lt;\/link&gt;\n    &lt;atom:link type=\"application\/rss+xml\" href=\"http:\/\/twitter.com\/statuses\/user_timeline\/23050865.rss\" rel=\"self\"\/&gt;\n    &lt;description&gt;Twitter updates from unckel designworks \/ unckel.&lt;\/description&gt;\n    &lt;language&gt;en-us&lt;\/language&gt;\n    &lt;ttl&gt;40&lt;\/ttl&gt;\n  &lt;item&gt;\n    &lt;title&gt;unckel: tweet tweet!&lt;\/title&gt;\n    &lt;description&gt;unckel: tweet tweet!&lt;\/description&gt;\n    &lt;pubDate&gt;Wed, 18 Nov 2009 07:45:26 +0000&lt;\/pubDate&gt;\n    &lt;guid&gt;http:\/\/twitter.com\/unckel\/statuses\/5821036943&lt;\/guid&gt;\n    &lt;link&gt;http:\/\/twitter.com\/unckel\/statuses\/5821036943&lt;\/link&gt;\n  &lt;\/item&gt;\n  &lt;item&gt;\n    ... usw ...\n  &lt;\/item&gt;\n  &lt;\/channel&gt;\n&lt;\/rss&gt;<\/pre>\n<p>Wichtig ist hier also der Inhalt der &lt;items&gt; und das w\u00e4ren insbesondere &lt;title&gt;, &lt;pubDate&gt; und &lt;link&gt;.<\/p>\n<pre>&lt;asp:XmlDataSource ID=\"XmlDataSource1\" runat=\"server\" \n\tDataFile=\"http:\/\/twitter.com\/statuses\/user_timeline\/23050865.rss\"\n\tXPath=\"rss\/channel\/item\" EnableCaching=\"false\" \/&gt;\n\n&lt;asp:Repeater ID=\"Repeater1\" runat=\"server\" DataSourceID=\"XmlDataSource1\"&gt;\n&lt;ItemTemplate&gt;\n\t&lt;a href=\"&lt;%# XPath(\"link\") %&gt;\"&gt;&lt;%# XPath(\"title\") %&gt;&lt;\/a&gt;&lt;br \/&gt;\n\t&lt;%# XPath(\"pubDate\") %&gt;&lt;br \/&gt;\n\t&lt;hr \/&gt;\n&lt;\/ItemTemplate&gt;\n&lt;\/asp:Repeater&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8222;richtiger&#8220; Code notwendig, sonder lediglich zwei ASP.NET-Controls. Das Beispiel bezieht sich explizit auf einen Twitter Atom-Feed, l\u00e4sst sich aber an jeden beliebigen anderen Feed anpassen. Wichtig: Immer genau die XML-Struktur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[],"class_list":["post-189","post","type-post","status-publish","format-standard","hentry","category-webdesign"],"_links":{"self":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/comments?post=189"}],"version-history":[{"count":1,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts\/189\/revisions"}],"predecessor-version":[{"id":799,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/posts\/189\/revisions\/799"}],"wp:attachment":[{"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/media?parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/categories?post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unckel.de\/blog\/wp-json\/wp\/v2\/tags?post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}