Accesso ai nodi DOM XML
Attraverso DOM, puoi accedere a ogni nodo nel documento XML.
Accesso ai nodi
Puoi accedere ai nodi in tre modi:
- Utilizzando il metodo getElementsByTagName()
- Attraverso un ciclo (esplorazione) dell'albero dei nodi
- Navigando attraverso le relazioni tra i nodi nell'albero dei nodi
Metodo getElementsByTagName()
getElementsByTagName()
Restituisce tutti gli elementi con il nome di etichetta specificato.
Sintassi
node.getElementsByTagName("tagname");
Esempio
Esempio: restituisce tutti gli elementi <title> sotto l'elemento x:
x.getElementsByTagName("title");
Nota: l'esempio sopra restituisce solo gli elementi <title> sotto il nodo x. Per restituire tutti gli elementi <title> nel documento XML, utilizzare:
xmlDoc.getElementsByTagName("title");
qui,xmlDoc
è il documento stesso (nodo documento).
Elenco dei nodi DOM
getElementsByTagName()
Il metodo restituisce una lista di nodi (node list). La lista dei nodi è un array di nodi.
x = xmlDoc.getElementsByTagName("title");
Puoi accedere agli elementi <title> attraverso l'indice. Per accedere al terzo <title>, puoi scrivere:
y = x[2];
Nota:L'indice parte da 0.
Lunghezza della lista dei nodi DOM
length
Proprietà per definire la lunghezza della lista di nodi (numero di nodi).
Puoi usare length
Proprietà per iterare attraverso la lista di nodi:
Esempio
var x = xmlDoc.getElementsByTagName("title"); for (i = 0; i < x.length; i++) { // Puoi scrivere il codice di elaborazione per ogni nodo qui }
Tipo di nodo
Nodi del documento XML documentElement
Proprietà è il nodo radice.
Proprietà del nodo nodeName
Proprietà è il nome del nodo.
Proprietà del nodo nodeType
Le proprietà sono il tipo del nodo.
Potrai imparare di più sulle proprietà dei nodi nel capitolo successivo di questa guida.
Esplorazione dei nodi
Il seguente codice itera sui figli del nodo radice (anche nodi elemento):
Esempio
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Processa solo i nodi elemento (tipo 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Esempio di spiegazione:
- Supponiamo che tu abbia già caricato "books.xml" Carica in
xmlDoc
- Ottieni i figli del nodo radice (xmlDoc)
- 检查每个子节点的节点类型。如果节点类型为 "
1
" è un nodo elemento - Se è un nodo elemento, viene outputto il nome del nodo
Navigazione delle relazioni dei nodi
Il seguente codice utilizza le relazioni tra i nodi per navigare nell'albero dei nodi:
Esempio
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Gestisci solo i nodi elemento (tipo 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Esempio di spiegazione:
- Supponiamo che tu abbia già caricato "books.xml" Carica in
xmlDoc
- Estrae i figli del primo elemento book
- 将 "y" 变量设置为第一个 book 元素的第一个子节点
- 对于每个子节点(从第一个子节点 "
y
" 开始): - 检查每个子节点的节点类型。如果节点类型为 "
1
",则它是元素节点 - 如果是元素节点,则输出该节点的名称
- 将 "
y
" 变量设置为下一个同级节点,并再次运行循环