Differenze tra Browser XML DOM
- Pagina precedente Esplorazione dei nodi DOM
- Pagina successiva Posizionamento del nodo DOM
I browser trattano i nodi di testo vuoti in modo diverso nel DOM XML.
Esempio
Esempio seguente utilizza file XML books.xml.
Funzione loadXMLDoc(), situata all'esterno del JavaScript, utilizzata per caricare file XML.
- Mostra la lunghezza della lista dei nodi
- Questo esempio mostra la lunghezza di una lista di nodi. Ne IE e negli altri browser i risultati sono diversi.
- Ignora i nodi di testo vuoti tra i nodi
- Questo esempio verifica il nodeType del nodo e gestisce solo i nodi element.
Differenze tra i browser nella解析 del DOM
Tutti i browser moderni supportano la specifica W3C DOM.
Tuttavia, ci sono differenze tra i browser. Le differenze importanti sono due:
- Modi di caricamento dell'XML
- Modi di gestione degli spazi bianchi e dei newline
In "Analisi XML DOMIn questa sezione, è stata spiegata la diversa modalità di caricamento dell'XML.
In questa sezione, spiegheremo diversi modi di gestire gli spazi bianchi e i newline.
DOM - Spazi bianchi e newline
L'XML contiene spesso newline o spazi bianchi tra i nodi. Questo è un problema comune quando si utilizza un editor semplice (ad esempio, Notepad).
Esempio seguente (modificato con Notepad) contiene CR/LF tra le righe e due spazi prima di ogni sotto-nodo:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox e altri browser gestiscono gli spazi bianchi vuoti o i salti di riga come nodi di testo, mentre Internet Explorer non lo fa.
Il seguente frammento di codice mostra quanti sotto-nodi ha l'elemento radice (di books.xml):
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Number of child nodes: " + x.length);
Esempio di spiegazione:
- Utilizzando loadXMLDoc() Aggiungi "books.xml" Carica in xmlDoc "
- Ottieni i figli del nodo radice
- Output numero di sotto-nodi
I risultati dipendono dal browser utilizzato. Firefox esce con 9, mentre IE esce con 4.
Ignora i nodi di testo vuoti tra i nodi
Per ignorare i nodi di testo vuoti tra i nodi elemento, è necessario controllare il tipo di nodo. Il tipo di nodo degli elementi è 1:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// elabora solo i nodi elemento document.write(x[i].nodeName); document.write("<br />"); } }
Esempio di spiegazione:
- Utilizzando loadXMLDoc() Aggiungi "books.xml" Carica in xmlDoc "
- Ottieni i figli del nodo radice
- Controlla il tipo di nodo di ogni sotto-nodo. Se il tipo di nodo è "1", è un nodo elemento
- Pagina precedente Esplorazione dei nodi DOM
- Pagina successiva Posizionamento del nodo DOM