Abbiamo già visto come leggere e scrivere in un file XML con ASP e con XMLDOM; vediamo adesso come aggiornare dei dati, prendendo sempre come riferimento il file “rubrica.xml” dell’articolo introduttivo ad XML con una variante, l’aggiunta di un attributo identificativo di ogni singolo nodo.
Riporto la struttura aggiornata del codice XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <rubrica> <utente> <nome id="1">Pippo</nome> <telefono>001122</telefono> </utente> <utente> <nome id="2">Pluto</nome> <telefono>334455</telefono> </utente> <utente> <nome id="3">Paperino</nome> <telefono>667788</telefono> </utente> <utente> <nome id="4">Topolino</nome> <telefono>990011</telefono> </utente> </rubrica>
Aggiorneremo il nodo con ID = 4 modificando il nome dell’utente da “Topolino” a “Minnie”. Vediamo un’anteprima del codice che commenteremo in un secondo momento
<%@LANGUAGE = VBScript%>
<html>
<body>
<%
Dim MyXML
Set MyXML = Server.CreateObject("Microsoft.XMLDOM")
MyXML.Async = False
MyXML.Load Server.MapPath("rubrica.xml")
Set aggiorna = MyXML.selectSingleNode("rubrica/utente/nome[@id='4']")
aggiorna.Text = "Minnie"
MyXML.Save Server.MapPath("rubrica.xml")
Set aggiorna = Nothing
Set MyXML = Nothing
Response.Write "Aggiornamento effettuato con successo"
%>
</body>
</html>
Dopo aver compiuto le operazioni preliminari di apertura e connessione al file XML accediamo al nodo che ci interessa utilizzando il metodo selectSingleNode che, com’è intuibile dal suo nome, seleziona un solo nodo, quello di riferimento all’ID che richiamiamo con un XPath:
rubrica/utente/nome[@id='4']
Utilizziamo poi il metodo Text per scrivere all’interno del file XML e Save per salvare l’operazione compiuta.
