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
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>Contenuti dell'articolo
- I nuovi controlli di ASP.NET 3.5: LinqDataSource, ListView e DataPager
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà

Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!