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="https://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).
c# c# asp.net rss xmldatasource xpath da
Commentami!