Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Leggere un Feed RSS con ASP.NET ed XSL

Articolo scritto da Luca Ruggiero

In un precedente articolo abbiamo visto com'è semplice trasformare XML con XSL in ASP.NET, questo sistema, tuttavia, non consente di trasformare un Feed RSS, dal momento che il file XML, in questo caso, non si trova sullo stesso server che esegue lo script, bensì su di un server remoto.

Vediamo quindi come leggere un Feed RSS con ASP.NET, utilizzando XSL per eseguire la trasformazione e gestire la formattazione a video dell'output finale.

(L'articolo continua più sotto...)

Il file XSL

Prima di passare al codice ASP.NET da utilizzare (che sfrutterà i namespaces System.IO, System.Xml e System.Xml.Xsl) diamo un occhio al codice XSL che sarà contenuto nel file feed.xsl e posizionato nella stessa cartella in cui si troverà il file ASP.NET che eseguirà lo script:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" />
    <xsl:template match="/">
        <xsl:for-each select="rss/channel/item">
            <p>
                <a href="{link}"><b><xsl:value-of select="title" /></b></a><br />
                <xsl:value-of select="description" /><br />
                <i>Scritto da <xsl:value-of select="author" /> in data <xsl:value-of select="pubDate" /></i>
            </p>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
Andiamo dunque ad estrarre dal nodo in cui sono contenute le notizie - ovvero "rss/channel/item" - i campi title, description, author e pubDate che contengono, rispettivamente, i dati relativi al titolo, alla descrizione, all'autore ed alla data in cui la news è stata scritta.

Lo script ASP.Net

Passiamo alla scrittura del codice ASP.NET che sfrutta le classi XmlDocument ed XslTransform, quindi gli oggetti StringBuilder e StringWriter.
Ecco il codice completo:

<%@Page Language="VB"%>
<%@Import Namespace="System.IO"%>
<%@Import Namespace="System.Xml"%>
<%@Import Namespace="System.Xml.Xsl"%>
<script language="VB" runat=server>
Sub Page_Load(sender As Object, e As EventArgs)
    Dim CaricaXML As XmlDocument = New XmlDocument()
    CaricaXML.Load("http://www.mrwebmaster.it/rss/news.xml")
    Dim CaricaXSL As XslTransform = New XslTransform()
    CaricaXSL.Load(Server.MapPath("feed.xsl"))
    Dim sb As StringBuilder = New StringBuilder()
    Dim sw  As StringWriter  = New StringWriter(sb)
    CaricaXSL.Transform(CaricaXML, Nothing, sw)
    risultato.Text = sb.ToString()
End Sub
</script>
<html>
    <head>
        <title>Leggere un Feed RSS con ASP.NET ed XSL</title>
</head>
<body>

<form id="modulo" runat="server">
    <asp:literal id="risultato" runat="server" />
</form>

</body>
</html>
Una volta recuperato il Feed RSS remoto (per l'esempio abbiamo scelto uno dei Feed RSS di Mr.Webmaster) lo carichiamo per poi caricare il documento XSL che si occuperà, come già detto, della formattazione.

Eseguiamo la trasformazione e stampiamo il risultato finale in un tag testuale lato server messo a disposizione dal .NET Framework.

Corsi
Corso ASPCorso ASP
Corso completo per la creazione di siti Web dinamici. A partire da 39 €.
Corso ASP.NETCorso ASP.NET
Corso completo per la creazione di applicazioni Web. A partire da 49 €.
Corso SQL e DatabaseCorso SQL e Database
Creazione e gestione di database relazionali. A partire da 39 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122