Gli ultimi tutorial di sviluppo web
 

XML DOM - Accesso Nodi


Con il DOM, è possibile accedere a tutti i nodi in un documento XML.


Provate voi stessi - Esempi

Gli esempi di seguito utilizzano il file XML books.xml .

Accedere a un nodo utilizzando il suo numero di indice in una lista nodi
Utilizzare il getElementsByTagName() metodo per ottenere il terzo <title> elemento in "books.xml"

Loop attraverso i nodi utilizzando la proprietà length
Utilizzare la proprietà length per il ciclo di tutti <title> elementi in "books.xml"

Vedere il tipo di nodo di un elemento
Utilizzare la proprietà nodeType per ottenere tipo di nodo dell'elemento radice "books.xml" .

Loop attraverso nodi elemento
Utilizzare la proprietà nodeType di nodi elemento unico processo in "books.xml" .

Loop attraverso nodi elemento utilizzando le relazioni dei nodi
Utilizzare la proprietà nodeType e la proprietà nextSibling per elaborare i nodi elemento in "books.xml" .

×

Intestazione


Accesso ai nodi

È possibile accedere a un nodo in tre modi:

1. Usando il getElementsByTagName() metodo

2. Con il collegamento in cascata (traversing) l'albero nodi.

3. Navigando l'albero dei nodi, utilizzando le relazioni dei nodi.


Il getElementsByTagName() Metodo

getElementsByTagName () restituisce tutti gli elementi con un nome tag specificato.

Sintassi

node.getElementsByTagName("tagname");

Esempio

Nell'esempio seguente vengono restituiti tutti <title> elementi sotto l'elemento x:

x.getElementsByTagName("title");

Si noti che l'esempio di cui sopra solo rendimenti <title> elementi nel nodo x. Per restituire tutti <title> elementi nell'uso documento XML:

xmlDoc.getElementsByTagName("title");

dove xmlDoc è il documento stesso (document node) .


DOM Lista Nodo

Il getElementsByTagName() metodo restituisce un elenco dei nodi. Un elenco nodo è un array di nodi.

x = xmlDoc.getElementsByTagName("title");

Il <title> elementi in x si può accedere in base al numero di indice. Per accedere al terzo <title> è possibile scrivere ::

y = x[2];

Note: L'indice inizia da 0.

Si impara di più sugli elenchi di nodi in un capitolo successivo di questo tutorial.


DOM nell'elenco nodi Lunghezza

La proprietà di lunghezza definisce la lunghezza di una lista dei nodi (the number of nodes) .

È possibile scorrere l'elenco nodo utilizzando la proprietà length:

Esempio

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
Prova tu stesso "

tipi di nodo

La documentElement proprietà del documento XML è il nodo principale.

La nodeName proprietà di un nodo è il nome del nodo.

La nodeType proprietà di un nodo è il tipo del nodo.

Imparerete di più sulle proprietà del nodo nel prossimo capitolo di questo tutorial.

Prova tu stesso


nodi di movimento

Il codice seguente scorre i nodi secondari, che sono anche nodi elemento, del nodo principale:

Esempio

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}
Prova tu stesso "

Esempio spiegato:

  1. Supponiamo di aver caricato " books.xml " in xmlDoc
  2. Ottenere i nodi figli dell'elemento radice (xmlDoc)
  3. Per ogni nodo figlio, verificare il tipo di nodo. Se il tipo di nodo è "1" si tratta di un nodo elemento
  4. Output il nome del nodo se è un nodo di elementi

Navigare Nodo relazioni

Il codice seguente sposta l'albero dei nodi utilizzando le relazioni dei nodi:

Esempio

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}
Prova tu stesso "

Esempio spiegato:

  1. Supponiamo di aver caricato " books.xml " in xmlDoc
  2. Ottenere i nodi figlio del primo elemento libro
  3. Impostare la "y" variabile per essere il primo nodo figlio del primo elemento libro
  4. Per ogni nodo figlio (starting with the first child node "y") :
  5. Controllare il tipo di nodo. Se il tipo di nodo è "1" si tratta di un nodo elemento
  6. Output il nome del nodo se è un nodo di elementi
  7. Impostare la "y" variabile per essere il nodo di pari livello successivo, e correre attraverso il ciclo di nuovo