XML DOM NodeList

La lista dei nodi è restituita dal metodo getElementsByTagName() e dall'attributo childNodes.

Esempio

Esempio di file XML sottostante books.xml.

Funzione loadXMLDoc()Si trova all'esterno del JavaScript, utilizzato per caricare file XML.

Ottieni il testo del primo elemento <title>
Questo esempio utilizza il metodo getElementsByTagName() per ottenere il testo del primo elemento <title> di <books.xml>.
Iterare i nodi utilizzando l'attributo length
Questo esempio utilizza una lista di nodi e l'attributo length per iterare attraverso tutti gli elementi <title> di <books.xml>.
Ottieni le proprietà dell'elemento
Questo esempio utilizza una lista di attributi per ottenere le proprietà dell'elemento <title> del primo <books.xml>.

DOM NodeList

Quando si utilizzano attributi o metodi come childNodes o getElementsByTagName(), viene restituito un oggetto NodeList.

L'oggetto NodeList rappresenta una lista di nodi, nell'ordine identico a quello dell'XML.

Utilizzare l'indice di partenza 0 per accedere ai nodi nella lista dei nodi.

L'immagine seguente rappresenta "books.xmlElenca un elenco di nodi degli elementi <title>:"

Elenco di nodi DOM

Il seguente frammento di codice utilizza loadXMLDoc() Carica "books.xml" nel xmlDoc e restituisce "books.xml"Elenca un elenco di nodi di elementi title:"

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Dopo l'esecuzione della dichiarazione sopra, x diventa un oggetto NodeList.

Il seguente frammento di codice restituisce il testo dal primo elemento <title> dell'elenco dei nodi x:

txt=x[0].childNodes[0].nodeValue;

Dopo l'esecuzione della dichiarazione sopra, txt = "Everyday Italian".

TIY

Lunghezza della Lista di Nodi

L'oggetto NodeList mantiene il proprio aggiornamento. Se vengono eliminati o aggiunti elementi, l'elenco si aggiorna automaticamente.

L'attributo length dell'elenco dei nodi è il numero di nodi nella lista.

Il seguente frammento di codice utilizza loadXMLDoc() Assegna "books.xml"Carica xmlDoc e restituisce il numero di elementi <title> in "books.xml":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

Dopo l'esecuzione della dichiarazione sopra, x = 4.

La lunghezza dell'elenco dei nodi può essere utilizzata per ciclare attraverso tutti gli elementi della lista.

Il seguente frammento di codice utilizza l'attributo length per esplorare l'elenco degli elementi <title>:

xmlDoc=loadXMLDoc("books.xml");
//La variabile x conterrà un elenco di nodi
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Output:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Assegna "books.xml"Carica xmlDoc
  • Imposta la variabile x con l'elenco dei nodi di tutti i title salvati.
  • Estrae il valore del testo da tutti i nodi <title>.

TIY

DOM Attribute List (Named Node Map)

L'attributo attributes del nodo elemento restituisce un elenco di nodi di attributo.

Questo viene chiamato Named Node Map, è simile all'elenco dei nodi, oltre a alcune differenze nei metodi e attributi.

L'elenco delle proprietà mantiene il proprio aggiornamento. Se vengono eliminati o aggiunti attributi, l'elenco si aggiorna automaticamente.

Il seguente frammento di codice utilizza loadXMLDoc() Carica "books.xml" in xmlDoc e da "books.xmlIl primo <book> all'interno di "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Dopo l'esecuzione del codice sopra, x.length è uguale al numero di attributi, si può utilizzare x.getNamedItem() per restituire il nodo dell'attributo.

Il seguente frammento di codice mostra il valore dell'attributo "category" di un book e il numero di attributi:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Output:

figli
1

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Assegna "books.xml"Carica xmlDoc"
  • Assegna alla variabile x un elenco di tutte le proprietà dell'elemento <book> in primo luogo
  • Esempio: output del valore dell'attributo "category"
  • Esempio: output della lunghezza dell'elenco delle proprietà

TIY