DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
RSS Feed in 3 Minuten erzeugen

RSS ist ein XML Datenformat. Es wird in Web Seiten eingesetzt um Daten in Maschinen lesbarer Form zu darzustellen. Ein typischer Anwendungsfall sind News die dann per Newsreader automatisch konsumiert werden. Der Benutzer muss diese Seiten dann nicht absurfen und kann diese sogar später wenn keine Internet Verbindung mehr vorhanden ist in seinem Newsreader lesen.

Um solche News aus Daten zu erzeugen kann man ASP.NET "missbrauchen". Warum ich diese Wortwahl treffe wird gleich klarer.

Zunächst verwende ich ein SQLDatasource Control um auf die Tabelle mit den DevTrain Artikeln zuzugreifen. Weiters ein Repeater Control um die Daten auszugeben. Ein RSS Dokument muss folgende Struktur aufweisen (Quelle Wikipedia):

<rss version="2.0">

  <channel>
    <title>Titel des Feeds</title>
    <link>Adresse der Webpräsenz</link>
    <description>Kurze Beschreibung des Feeds</description>
    <language>de-de</language>
    <copyright>urheberrechtliche Informationen</copyright>
    <pubDate>Datum der Erstellung</pubDate>
    <image>
      <url>Soll eine Grafik, z.B. ein Logo, eingebunden werden,
           hier dessen Adresse eintragen</url>
      <title>Titel des Bildes</title>
      <link>Adresse, mit der das Bild verknüpft werden soll, z. B.
            die Adresse der Website des Herausgebers</link>
    </image>

    <item>
      <title>Titel des ersten Artikels</title>
      <description>Eine kurze Zusammenfassung des Artikels</description>
      <link>Adresse zur Gesamtansicht des Artikels</link>
      <author>Autor des Artikels &lt;E-Mail-Adresse&gt;</author>
    </item>

    <item>
      <title>Titel des zweiten Artikels</title>
      <description>
        <![CDATA[
        <h1>Hier kann auch der vollständige HTML-Inhalt
          des Artikels stehen</h1>
        <p>?</p>
        ]]>
      </description>
      <author>Autor des Artikels &lt;E-Mail-Adresse&gt;</author>
    </item>
   
    ?

  </channel>

</rss>

Wobei man sich nicht besonders genau an diese Regeln halten muss. Genau diese XMl Struktur bilden wir nun nach. Wichtiger Trick dabei ist das wir alle HTML Elemente samt Form einfach aus der ASPX Seite entfernen.

<%@ Page Language="VB" ContentType="text/xml" EnableViewState="false" EnableSessionState="False" EnableTheming="false" Theme="" %>

<%@ Import Namespace="System.Data.SqlClient" %>

<%@ Import Namespace="System.Data" %>

<asp:repeater id="rptRSS"

runat="server" DataSourceID="DSRSS1" enableviewstate=false>

<headertemplate>

<rss version="2.0">

<channel>

<ttl>5</ttl>

<title>DevTrain Foren neue Einträge</title>

<link>http://beta.devtrain.de/foren/default.aspx</link>

<description>DevTrain das Community Portal für den .NET Entwickler</description>

<lastbuildDate><%=Date.now().tostring("r")%></lastbuildDate>

<image>

<url>http://www.devtrain.de/pics/logo2.gif</url>

<title>DevTrain.de Foren</title>

<link>http://www.devtrain.de</link>

</image>

</headertemplate>

<footertemplate>

</channel>

</rss>

</footertemplate>

<itemtemplate>

<item>

<title><%#librss.FormatForXML(Eval("Thema"))%>:<%#librss.FormatForXML(Eval("Subject"))%></title>

<description><%# librss.FormatForXML(Eval( "Inhalt")) %></description>

<link>http://beta.devtrain.de/Foren/showthread.aspx?threadid=<%#librss.FormatForXML(Eval("MasterID"))%>&amp;postid=<%#librss.FormatForXML(Eval("ID"))%></link>

<author><%# librss.FormatForXML(Eval( "VorName")) %> <%#librss.FormatForXML(Eval("NachName"))%> </author>

<pubDate><%# String.Format("{0:r}", CType(eval("Datum"), DateTime)) %></pubDate>

</item>

</itemtemplate>

</asp:repeater>

<asp:SqlDataSource

ID="DSRSS1" runat="server"

ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>"

>

</asp:SqlDataSource>

Die statische Methode FormatForXML wandelt alle nicht XML validen Zeichen um. Wichtig ist auch das RSS spezifische Datumsformat das mit dem Format {0:r} erzeugt wird.

Ganz sauber ist diese Lösung nicht, da die kompletten Daten bei jeder Anforderung übertragen werden. Hier hilft der Einsatz des ETAG. Dies aber in einem gesonderten Artikel.


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 04.03.2007
  Gültig bis: 02.06.2007
39 Ratings
Bewertung: 21,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG