Nodi DOM XML
Secondo l'XML DOM, tutto in un documento XML è un nodo :
- L'intero documento è un nodo del documento
- Ogni elemento XML è un nodo di elemento
- Il testo negli elementi XML sono nodi di testo
- Ogni attributo è un nodo di attributo
- I commenti sono nodi di commento
Esempio DOM
Guarda il seguente file XML ( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Il nodo radice nell'XML sopra è denominato <bookstore>.
Tutti gli altri nodi nel documento sono contenuti in <bookstore>.
Il nodo principale <bookstore> contiene 4 nodi <book>.
Il primo nodo <libro> contiene i nodi figlio: <titolo>, <autore>, <anno> e <prezzo>.
I nodi figli contengono ciascuno un nodo di testo, "Everyday Italian", "Giada De Laurentiis", "2005" e "30.00".
Il testo è sempre archiviato nei nodi di testo
Un errore comune nell'elaborazione DOM è aspettarsi che un nodo elemento contenga testo.
Tuttavia, il testo di un nodo elemento viene archiviato in un nodo di testo.
In questo esempio: <year>2005</year> , l'elemento node <year> contiene un nodo di testo con il valore "2005".
"2005" non è il valore dell'elemento <anno>!
L'albero dei nodi DOM XML
Il DOM XML vede un documento XML come una struttura ad albero. La struttura ad albero è chiamata albero dei nodi.
Tutti i nodi sono accessibili tramite l'albero. Il loro contenuto può essere modificato o cancellato e possono essere creati nuovi elementi.
L'albero dei nodi mostra l'insieme di nodi e le connessioni tra di loro. L'albero inizia dal nodo radice e si dirama ai nodi di testo al livello più basso dell'albero:
L'immagine sopra rappresenta il file XML books.xml .
Nodo Genitori, figli e fratelli
I nodi nell'albero dei nodi hanno una relazione gerarchica tra loro.
I termini genitore, figlio e fratello sono usati per descrivere le relazioni. I nodi padre hanno figli. I bambini dello stesso livello sono chiamati fratelli (fratelli o sorelle).
- In un albero di nodi, il nodo superiore è chiamato radice
- Ogni nodo, eccetto la radice, ha esattamente un nodo padre
- Un nodo può avere un numero qualsiasi di figli
- Una foglia è un nodo senza figli
- I fratelli sono nodi con lo stesso genitore
L'immagine seguente illustra una parte dell'albero dei nodi e la relazione tra i nodi:
Poiché i dati XML sono strutturati in una forma ad albero, possono essere attraversati senza conoscere l'esatta struttura dell'albero e senza conoscere il tipo di dati in esso contenuti.
Imparerai di più sull'attraversamento dell'albero dei nodi in un capitolo successivo di questo tutorial.
Primo figlio - Ultimo figlio
Osserva il seguente frammento XML:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
Nell'XML sopra, l'elemento <title> è il primo figlio dell'elemento <book> e l'elemento <price> è l'ultimo figlio dell'elemento <book>.
Inoltre, l'elemento <book> è il nodo padre degli elementi <title>, <author>, <year> e <price>.