XML con il DataSet di ADO.NET

di Daniele Bochicchio, in ASP.NET,

L'accesso a dati contenuti in file XML con ASP.NET è davvero semplice.
Lo è ancora di più se cerchiamo di utilizzarli come una normale fonte dati.
Il vantaggio principale di questo approccio è che utilizzeremo gli oggetti che ci sono più comodi e che abbiamo imparato ad apprezzare, come DataSet.
Premetto subito che a livello di performance ci sono soluzioni migliori, come XmlReader e XmlDocument, ma la praticità di un DataSet è di difficile emulazione.

Caricare i dati

L'oggetto DataSet di ADO.NET ha un metodo che permette di caricare all'interno dati letti da un documento XML.
Ci basterà invocare il metodo

ReadXml
di DataSet per caricare i dati.
Le fonti possono essere diverse: stringa, URL remoto, file locale. Abbiamo solo l'imbarazzo della scelta.
Eccone una versione C#, di base:

 <%@ Page Language="C#"%>
<%@ Import Namespace="System.Data"%>
<SCRIPT RUNAT="SERVER">
void Page_Load() {
  DataSet ds = new DataSet();
  ds.ReadXml("percorso");
  dg.DataSource = ds.Tables[1].DefaultView;
  dg.DataBind();
}
</SCRIPT>

<asp:DataGrid id="dg" runat="server" />

e l'equivalente VB.NET:

<%@ Page Language="VB"%>
<%@ Import Namespace="System.Data"%>
<SCRIPT RUNAT="SERVER">
Sub Page_Load()
  Dim ds as New DataSet
  ds.ReadXml("percorso")
  dg.DataSource = ds.Tables(1).DefaultView()
  dg.DataBind()
End Sub
</SCRIPT>

<asp:DataGrid id="dg" runat="server" />

Le cose che probabilmente dovrete personalizzare sono il percorso (ovviamente) ed i tag da cui volete partire. Quell'uno che trovate tra parantesi indica l'insieme di tag da cui partire. Ovviamente può essere anche una stringa che indentifichi il tag stesso. Cerchiamo di capirci qualcosa.

Leggere un feed RSS

Ormai è forse l'esempio più gettonato, anche grazie alla massiccia diffusione dei blog. Sto parlando di feed RSS o RDF, ovvero in un particolare formato che consente di dare al mondo una lista degli ultimi articoli pubblicati sul proprio sito, attraverso un formato basato su XML e quindi largamente disponibile.
In effetti in giro si trovano diversi feed reader, e potete farvi un'idea su DMOZ .
Quindi, cerchiamo di emulare un attimo il comportamento di questi feed reader, ad esempio per includere sulle nostre pagine gli ultimi aggiornamenti di ASPItalia.com.

Per prima cosa, ecco un esempio di feed RSS, come lo potete trovare direttamente su questa pagina .

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
 "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>

<title>ASPItalia.com</title>
<link>http://www.aspitalia.com/</link>
<description>Enjoy the .NET community</description>
<language>it</language>

<image>
<title>ASPItalia.com</title>
<url>http://www.aspitalia.com/immagini/aspitalia.gif</url>
<link>http://www.aspitalia.com/</link>
</image>

<item>
<title>I nuovi corsi del primo semestre 2003: Milano, Lugo(Ra), Treviso</title>
<link>http://www.aspitalia.com/servizi/focus/mostra.aspx?ID=233</link>
<description>Visualizza il testo di ' I nuovi corsi del primo semestre 2003: Milano, Lugo(Ra), Treviso'</description>
</item>
<item>
<title>Vuoi incontrare Bill Gates? Viaggia con ASPItalia.com!</title>
<link>http://www.aspitalia.com/servizi/focus/mostra.aspx?ID=228</link>
<description>Visualizza il testo di ' Vuoi incontrare Bill Gates? Viaggia con ASPItalia.com!'</description>
</item>

lt;/channel>
</rss>
2 pagine in totale: 1 2
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti