Analisi XML DOM
- Pagina precedente Albero dei nodi DOM
- Pagina successiva Caricamento DOM
La maggior parte dei browser ha integrato un parser XML per leggere e manipolare XML.
Il parser trasforma XML in oggetti accessibili da JavaScript.
Esempio
Gli esempi forniti da CodeW3C.com sono indipendenti dai browser e dalle piattaforme. Questi esempi possono essere eseguiti in tutti i browser moderni.
Analizzare XML
Tutti i browser moderni hanno integrato un parser XML per leggere e manipolare XML.
Il parser legge XML in memoria e lo trasforma in un oggetto XML DOM accessibile da JavaScript.
Il parser XML di Microsoft è diverso dai parser XML degli altri browser. Il parser di Microsoft supporta il caricamento di file XML e stringhe XML (testo), mentre altri browser utilizzano parser separati. Tuttavia, tutti i parser contengono funzioni per esplorare l'albero XML, accedere, inserire e eliminare nodi.
In questo tutorial, vi spiegheremo come creare script che possono essere eseguiti in IE e altri browser.
Caricare XML tramite il parser XML di Microsoft
Il parser XML di Microsoft è integrato in Internet Explorer 5 e versioni successive.
Il seguente frammento di JavaScript carica il documento XML ("books.xml) Carica l'analizzatore:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
Spiegazione del codice:
- La prima riga crea un oggetto vuoto di Microsoft XML Document.
- La seconda riga chiude il caricamento asincrono, assicurando che il parser non continui a eseguire lo script prima che il documento sia completamente caricato
- La terza riga informa l'analizzatore di caricare il documento chiamato "books.xml"
Il seguente frammento di JavaScript carica la stringa chiamata txt nel parser:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
Nota:loadXML() Il metodo serve per caricare stringhe (testo), mentre load() Utilizzato per caricare file.
l'analizzatore XML nei browser Firefox e altri
Il seguente frammento di JavaScript carica il documento XML ("books.xml) Carica l'analizzatore:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
Spiegazione del codice:
- La prima riga crea un oggetto XML documento vuoto
- La seconda riga chiude il caricamento asincrono, assicurando che il parser non continui a eseguire lo script prima che il documento sia completamente caricato
- La terza riga informa l'analizzatore di caricare il documento chiamato "books.xml"
Il seguente frammento di JavaScript carica la stringa chiamata txt nel parser:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
Spiegazione del codice:
- La prima riga crea un oggetto XML documento vuoto
- La seconda riga informa l'analizzatore di caricare la stringa chiamata txt
Nota:Internet Explorer usa loadXML() metodo per analizzare una stringa XML, mentre altri browser usano DOMParser oggetto.
Analisi di un file XML - un esempio cross-browser
Il seguente esempio carica un documento XML ("books.xml) Carica l'analizzatore XML:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, ecc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc è caricato, pronto per l'uso"); } catch(e) {alert(e.message)} </script> </body> </html>
Errore: Accesso Across Domains
Per motivi di sicurezza, i browser moderni non permettono l'accesso cross-domain.
Questo significa che il sito web e il file XML che tenta di caricare devono essere situati sullo stesso server.
L'esempio su CodeW3C.com apre un file XML situato nel dominio di CodeW3C.com.
Se hai intenzione di utilizzare l'esempio sopra nel tuo sito web, dovrai mettere il file XML sul tuo server. Altrimenti, xmlDoc.load() genererà l'errore "Access is denied".
Analisi di una stringa XML - un esempio cross-browser
Il seguente codice carica e analizza una stringa XML:
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, ecc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc è caricato, pronto per l'uso"); </script> </body> </html>
Nota:Internet Explorer utilizza il metodo loadXML() per analizzare stringhe XML, mentre altri browser utilizzano Oggetto DOMParser.
- Pagina precedente Albero dei nodi DOM
- Pagina successiva Caricamento DOM