ASPcenter.net

4 marzo 2010

Aggiornare un nodo di un file XML con XMLDOM ed ASP

Archiviato in: ASP e XML — Tag:, , , , — lukeonweb @ 12:54

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.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress