Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 6 di 30
  • livello principiante
Indice lezioni

lavorare in pratica con XML: come creare un oggetto da un file XML

Come manipolare o dati di un documento XML da un'interfaccia DOM
Come manipolare o dati di un documento XML da un'interfaccia DOM
Link copiato negli appunti

Questo paragrafo risponde alla domanda: come si crea una variabile a partire da un file XML, per poi poterla utilizzare nel codice di un programma?
Se avete installato sul vostro computer MS Windows e MS Internet Explorer 5 allora avete già tutto quello che vi serve per cominciare. Microsoft ha inserito nel suo browser un "parserizzatore" (lo strumento che "legge" gli alberi di informazioni XML) sotto forma di controllo ActiveX (un componente di Windows).
Facciamo subito un esempio pratico. Di seguito trovate una pagina html con uno script Javascript che carica e visualizza un piccolo file XML:

Javascript - XML

Se copiate il testo in un file html e lo aprite con Internet Explorer 5 vi apparirà una finestra di messaggio con il titolo di questo tutorial ed il suo editore.
Questi due nomi si trovano già nella pagina, in un mini-file XML assegnato alla variabile "testo_XML". Noi li abbiamo caricati come due elementi indipendenti e li abbiamo scritti a video. Come abbiamo fatto?
Il caricamento avviene in tre passi.

  • Chiamare l'ActiveX "MSXML"

  var file_XML = new ActiveXObject("Microsoft.XMLDOM");
  file_XML.async = false

Con questa istruzione diciamo ad Internet Explorer di richiamare l'AcvtiveX di nome MSXML, che è un parserizzatore. MSXML prepara un oggetto (con l'interfaccia DOM che abbiamo descritto nei paragrafi precedenti della guida) utilizzabile dallo script. L'oggetto è ancora vuoto, ma ha un nome (file_XML) e possiede già una serie di proprietà che vedremo nei prossimi paragrafi.

  • Caricare il file XML

ì file_XML.loadXML(testo_XML)

Con questa istruzione abbiamo assegnato all'oggetto file_XML un contenuto: una radice, un ramo "titolo" ed un ramo "editore". Il contenuto è stato prelevato da una semplice variabile di testo, ma ora il parserizzatore ha creato una struttura dati ben più complessa e soprattutto, come vedremo, perfettamente manipolabile.

  • Posizionarsi alla "radice" dell'albero XML per leggerlo.

  var root = file_XML.documentElement;

Questa istruzione ci serve per posizionarci alla base dell'albero che abbiamo creato (la radice o "root"). Infatti dobbiamo indicare al programma come "entrare" nella struttura che abbiamo creato e riempito, per cominciare a leggere e scrivere.

Riassumiamo in una figura i tre momenti del caricamento del file XML.

figura

Nel nostro esempio abbiamo messo il nostro file XML in una variabile di testo dentro lo script. Normalmente invece il file è esterno e deve essere richiamato. In questo caso il cambiamento richiesto è minimo: per prima cosa dobbiamo cambiare di poco l'istruzione 2:

  file_XML.load ("Mio_file.xml")

poi dobbiamo indicare nome e posizione del file da caricare.

Create un file con Notepad o Wordpad di Windows, copiate nel file la stringa XML dell'esempio iniziale, chiamate il file Mio_file.xml (non dimenticate l'estensione .xml!) e salvatelo come file di testo nella stessa cartella dove avete creato il file html iniziale.
Se ricaricate il file html non vedrete nessun cambiamento apparente, ma i dati che leggete nell'avviso non provengono più dallo script, bensì dal file XML esterno. Per verificare provate a modificare Mio_file.xml mettendo al posto del titolo un'altra parola (senza cambiare la posizione dei tag!) e ricaricate di nuovo.

Quello che avete appena fatto è banale ma molto potente: avete appena caricato in una pagina web dei dati esterni senza utilizzare fonti ODBC o altri rompicapi simili, bensì tramite un semplice, piccolo testo (XML però!).

Per riassumere il contenuto di questo paragrafo:

  • con l'uso dell'ActiveX MSXML si carica un file XML in tre mosse;
  • le sorgenti XML possono essere di due tipi: un file con estensione .xml oppure una stringa di testo; basta inserire una piccola modifica nella seconda istruzione;
  • per utilizzare l'oggetto occorre posizionarsi alla sua radice.

Ti consigliamo anche