Leggere feed RSS in Asp.NET con XmlDataSource

Leggere feed RSS in Asp.NET con XmlDataSource

In un precedente articolo avevo parlato di come leggere in feed RSS usando Asp.NET e il C#.

Solo che ho notato che in alcuni casi quel metodo crea problemi e visto che non sono riuscito a risolvere ho usato un secondo metodo che adesso vi posto.

In questo caso non avremo bisogno del code-behind, ma solo di controlli server e tutto sarà fatto nella pagina Asp.NET.

Nello specifico useremo un XmlDataSource che prenderà i dati da una pagina web.

Questo XmlDataSource sarà il data-source di un altro controllo, un DataList.

Per andare a prendere i dati che ci servono useremo XPath.

 

In sostanza dentro la nostra pagina dovremo mettere una cosa del genere:

<asp:XmlDataSource ID="xmlRss" runat="server" DataFile="http://www.mattepuffo.com/site/?format=feed&type=rss"
        XPath="rss/channel/item"></asp:XmlDataSource>
    <asp:DataList ID="listRss" runat="server" DataSourceID="xmlRss">
        <ItemTemplate>
            <p>
                <a href="<%# XPath("link")%>" target="_blank">
                    <%# XPath("title")%></a>
            </p>
        </ItemTemplate>
    </asp:DataList>

Le variabili protected (e non private perchè sennò non sarebbero raggiungibili sulla pagina) rappresentano i dati che vogliamo vedere: il titolo e la descrizione.

Sotto nel caricamento della pagina creiamo un DataSet dove immagazzinare i dati.

Come vedete usando i controlli server solamente il tutto è ancora più semplice e banale.

Inoltre per ora rispetto all'altro metodo non ho trovato problemi.

In XmlDataSource impostiamo come DataFile l'indirizzo del feed, e come XPath l'elemento padre da cui prendere i dati che ci servovo.

Nel DataList impostiamo come DataSourceID il nostro XmlDataSource, e nell'elemento ItemTemplate usiamo XPath indicando i nodi che vogliamo vedere (link e titile per rendere il titolo linkabile).