Posizionamento dei nodi XML DOM
- Pagina precedente Browser DOM
- Pagina successiva Raccogliere nodi DOM
i nodi possono essere localizzati utilizzando le relazioni tra i nodi.
Esempio
Esempio seguente utilizza file XML books.xml.
Funzione loadXMLDoc()posizionato all'esterno del JavaScript, utilizzato per caricare file XML.
- Ricevere il nodo padre del nodo
- Questo esempio utilizza l'attributo parentNode per ottenere il nodo genitore.
- Ottieni il primo figlio del nodo
- Questo esempio utilizza il metodo firstChild() e una funzione personalizzata per ottenere il primo figlio di un nodo.
Navigazione dei nodi DOM
Accedi ai nodi dell'albero dei nodi attraverso le relazioni tra i nodi, di solito chiamato navigazione dei nodi ("navigating nodes").
Nell'XML DOM, le relazioni tra i nodi sono definite come attributi del nodo:
- parentNode
- childNodes
- firstChild
- lastChild
- nextSibling
- previousSibling
L'immagine seguente mostra books.xml Una parte dell'albero dei nodi e spiega le relazioni tra i nodi:

DOM - nodo genitore
Tutti i nodi hanno un solo nodo genitore. Il seguente codice localizza il nodo genitore di <book>:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);
Esempio di spiegazione:
- Utilizzando loadXMLDoc() Metti "books.xml" carica in xmlDoc
- Ottieni l'elemento <book> primo
- Output del nome del nodo genitore del "x"
Evitare nodi di testo vuoti
Firefox e altri browser considerano i blank space e i newline come nodi di testo, mentre IE non lo fa.
Questo può causare problemi quando si utilizzano i seguenti attributi: firstChild, lastChild, nextSibling, previousSibling.
Per evitare di localizzare nodi di testo vuoti (spazi e segni di newline tra i nodi elemento), utilizziamo una funzione per controllare il tipo del nodo:
function get_nextSibling(n) { y=n.nextSibling; while (y.nodeType!=1) { y=y.nextSibling; } return y; }
Con la funzione sopra, possiamo utilizzare get_nextSibling(node) al posto dell'attributo node.nextSibling.
Spiegazione del codice:
Il tipo del nodo elemento è 1. Se il nodo同级 non è un nodo elemento, spostati al nodo successivo fino a trovare un nodo elemento. In questo modo, sia in IE che in Firefox si ottiene lo stesso risultato.
Ottieni il primo elemento
Il seguente codice mostra il primo elemento del primo <book>:
<html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> <script type="text/javascript"> //controlla se il primo nodo è un nodo elemento funzione get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName); </script> </body> </html>
Output:
title
Esempio di spiegazione:
- Utilizzando loadXMLDoc() Metti "books.xml"Carica in xmlDoc"
- Usa la funzione get_firstChild su <book> per ottenere il primo figlio del nodo di elemento
- Output del nome del primo figlio (nodo di elemento)
Esempio
Esempio seguente utilizza funzioni simili:
- Pagina precedente Browser DOM
- Pagina successiva Raccogliere nodi DOM