Elenco dei nodi DOM XML
Un elenco di nodi viene restituito dal metodo getElementsByTagName() e dalla proprietà childNodes.
Provalo tu stesso - Esempi
Gli esempi seguenti utilizzano il file XML books.xml .
Questo esempio utilizza il metodo getElementsByTagName() per ottenere il testo dal primo elemento <title> in "books.xml".
Questo esempio usa l'elenco dei nodi e la proprietà length per scorrere tutti gli elementi <title> in "books.xml"
Questo esempio utilizza un elenco di attributi per ottenere l'attributo dal primo elemento <book> in "books.xml".
Elenco dei nodi DOM
Quando si utilizzano proprietà o metodi come childNodes o getElementsByTagName(), viene restituito un oggetto elenco di nodi.
Un oggetto elenco di nodi rappresenta un elenco di nodi, nello stesso ordine dell'XML.
Si accede ai nodi nell'elenco dei nodi con numeri di indice a partire da 0.
L'immagine seguente rappresenta un elenco di nodi degli elementi <title> in " books.xml ":
Supponiamo che "books.xml" sia caricato nella variabile xmlDoc.
Questo frammento di codice restituisce un elenco di nodi di elementi del titolo in "books.xml":
x = xmlDoc.getElementsByTagName("title");
Dopo l'esecuzione dell'istruzione precedente, x è un oggetto elenco di nodi.
Il seguente frammento di codice restituisce il testo del primo elemento <title> nell'elenco dei nodi (x):
Esempio
var txt = x[0].childNodes[0].nodeValue;
Dopo l'esecuzione della dichiarazione sopra, txt = "Everyday Italian".
Lunghezza elenco nodi
Un oggetto elenco di nodi si mantiene aggiornato. Se un elemento viene eliminato o aggiunto, l'elenco viene aggiornato automaticamente.
La proprietà length di un elenco di nodi è il numero di nodi nell'elenco.
Questo frammento di codice restituisce il numero di elementi <title> in "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Dopo l'esecuzione dell'istruzione sopra, il valore di x sarà 4.
La lunghezza dell'elenco dei nodi può essere utilizzata per scorrere tutti gli elementi nell'elenco.
Questo frammento di codice usa la proprietà length per scorrere l'elenco di elementi <title>:
Esempio
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Produzione:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Esempio spiegato:
- Supponiamo che " books.xml " sia caricato in xmlDoc
- Imposta la variabile x in modo che contenga un elenco di nodi di tutti gli elementi del titolo
- Raccogli i valori del nodo di testo dagli elementi <title>
Elenco attributi DOM (mappa dei nodi con nome)
La proprietà attributi di un nodo elemento restituisce un elenco di nodi attributo.
Questa è chiamata mappa di nodi con nome ed è simile a un elenco di nodi, fatta eccezione per alcune differenze nei metodi e nelle proprietà.
Un elenco di attributi si mantiene aggiornato. Se un attributo viene eliminato o aggiunto, l'elenco viene aggiornato automaticamente.
Questo frammento di codice restituisce un elenco di nodi di attributo dal primo elemento <book> in "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Dopo l'esecuzione del codice sopra, x.length = è il numero di attributi e x.getNamedItem() può essere utilizzato per restituire un nodo di attributo.
Questo frammento di codice ottiene il valore dell'attributo "categoria" e il numero di attributi di un libro:
Esempio
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Produzione:
cooking
1
Esempio spiegato:
- Supponiamo che " books.xml " sia caricato in xmlDoc
- Imposta la variabile x in modo che contenga un elenco di tutti gli attributi del primo elemento <book>
- Ottieni il valore dell'attributo "categoria" e la lunghezza dell'elenco degli attributi