- Leggere e scrivere dati XML -
 
COSA SERVE PER QUESTO TUTORIAL
Download | Chiedi sul FORUM | Glossario Conoscenza dell'HTML- un server che supporti la tecnologia ASP .NET - facoltativamente un editor provvisto di intellisense (es. Macromedia Dreamweaver)
Come leggere e scrivere dati in formato XML attraverso ASP .NET

LEGGERE E SCRIVERE XML
In poche righe di codice leggere e scrivere XML.

1) Per prima cosa nel nostro file .aspx importiamo gli spazi di nome necessari:


<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.XML" %> 
<%@ Import Namespace="System.Data" %>

System.XML è lo spazio di nomi che fornisce tutte le funzioni riguardanti XML mentre System.Data ci serve perchè contiene DataSet, oggetto fondamentale per la gestione dei dati.

2) Iniziamo uno script e dichiariamo un nuovo oggetto DataSet in cui metteremo i dati letti dal file XML:


<script language="VB" runat="server">
Dim dsData As New DataSet()
Sub Page_Load()

3) La funzione ReadXml di DataSet legge un file XML e lo trasferisce nel DataSet:

dsData.ReadXml(Server.MapPath("Clientela.xml"))

La sintassi per accedere ad un file XML è molto più semplice rispetto a quella per database in quanto l'intero file viene caricato interamente (mentre per i database solitamente si utilizzano query per filtrare i dati che interessano). Server.MapPath viene qui utilizzato per cercare il file "Clientela.xml" nella stessa cartella del file ASPX in esecuzione.

4) Ora visualizziamo i risultati e chiudiamo lo script:


dgOutput.DataSource = dsData.Tables(0).DefaultView
dgOutput.DataBind()
End Sub
</script>

dgOutput è il nome della DataGrid che stiamo per creare; impostando la proprietà DataSource sulla DefaultView prima tabella del DataSet, nella DataGrid appariranno tutti i valori nel file XML. Per ora non è importante capire il significato delle righe appena sopra, ricordiamo solo che servono per mostrare i dati all'interno della griglia.

5) Ecco la tag della DataGrid che genererà una tabella con il contenuto del DataSet:

<asp:DataGrid ID="dgOutput" runat="server"/>

A questo punto possiamo già provare a eseguire il nostro file .aspx.

6) Ammettiamo ora di voler modificare un valore dando come riferimento la colonna e la riga:


<form runat="server">
Riga: <asp:TextBox ID="Row" runat="server" /><br>
Colonna: <asp:TextBox ID="Column" runat="server" /><br>
Valore: <asp:TextBox ID="Value" runat="server" /><br>
<asp:Button ID="Modifica" OnClick="Modify" runat="server" Text="Modifica" />
</form>

Con questo form (da aggiungere dopo la DataGrid) diamo all'utente la possibilità di specificare la riga, la colonna e il nuovo valore all'interno di caselle di testo: dati indispensabili per eseguire una modifica. Si noti che è stata specificata la proprietà OnClick per il Button Modifca su Modify, nome della Sub che ora creeremo.

7) Dichiariamo la Sub Modify (prima o dopo la Sub Page_Load) che viene eseguita quando si preme il pulsante Modifica:

Sub Modify(sender As Object, e As System.EventArgs)

8) Modifichiamo il DataSet (creato di in precedenza) nella riga specificata nella casella di testo Row, nella colonna specificata nella casella di testo Column:

dsData.Tables(0).Rows(CInt(Row.Text))(CInt(Column.Text))=Value.Text

CInt(stringa) serve per trasformare una stringa di testo in numero. Value è il nome della casella di testo contenente il nuovo valore.

9) Infine con l'istruzione WriteXml aggiorniamo il file XML alle modifiche che abbiamo apportato:

dsData.WriteXml(Server.MapPath("Clientela.xml"))

10) Rieseguiamo il DataBind per aggiornare anche i risultati della DataGrid e poi chiudiamo la Sub:


dgOutput.DataBind()
End Sub

Note: Se vi si presentano errori come 'Accesso al percorso "...\Clientela.xml" negato' significa che non disponete di un'autorizzazione di un livello sufficientemente elevato per poter accedere a quel file. Rivolgersi all'amministratore del sistema.

 

<< INDIETRO by VeNoM00