Home / Programmazione / C# - Asp.NET / Leggere feed RSS in Asp.NET con XmlDataSource
Mattepuffo

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).