Acceder a nodos DOM XML
- Página anterior Nodo DOM
- Página siguiente Información de nodos DOM
A través de DOM, puede acceder a cada nodo en el documento XML.
Acceder a los nodos
Puede acceder a los nodos de tres formas:
- usando el método getElementsByTagName()
- mediante el bucle (recorrido) del árbol de nodos
- navigando por las relaciones de los nodos en el árbol de nodos
Método getElementsByTagName()
getElementsByTagName()
devuelve todos los elementos que tienen un nombre de etiqueta especificado.
Sintaxis
node.getElementsByTagName("tagname");
Ejemplo
El siguiente ejemplo devuelve todos los elementos <title> bajo el elemento x:
x.getElementsByTagName("title");
Tenga en cuenta que el ejemplo anterior solo devuelve los elementos <title> bajo el nodo x. Si desea devolver todos los elementos <title> del documento XML, utilice:
xmlDoc.getElementsByTagName("title");
Aquí,xmlDoc
es el documento en sí mismo (nodo de documento).
Lista de nodos DOM
getElementsByTagName()
方法返回节点列表(node list)。节点列表是节点的数组。
método devuelve una lista de nodos (lista de nodos). La lista de nodos es un array de nodos.
x = xmlDoc.getElementsByTagName("title");
Se puede acceder a los elementos <title> en x mediante el número de índice. Si desea acceder al tercer <title>, puede escribir así:
y = x[2];Comentario:
El índice comienza en 0.
Puede usar
Longitud de la lista de nodos DOM
propiedad para definir la longitud de la lista de nodos (número de nodos). Puede usar
length
Ejemplo
propiedad para recorrer la lista de nodos: for (i = 0; i < x.length; i++) { var x = xmlDoc.getElementsByTagName("title"); }
// Aquí se puede escribir el código para procesar cada nodo
Tipos de nodos Los nodos del documento XML
documentElement
La propiedad es el nombre del nodo. La propiedad es el nodo raíz.
nodeName
La propiedad es el nombre del nodo. nodeType
Las propiedades son el tipo del nodo.
Aprenderá más sobre las propiedades de los nodos en el siguiente capítulo de este tutorial.
Recorrer nodos
El siguiente código recorre los nodos hijos del nodo raíz (también nodos de tipo elemento):
Ejemplo
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Procesar solo nodos de tipo elemento (tipo 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Ejemplo de explicación:
- Supongamos que ya ha cargado"books.xml"Cargar en"
xmlDoc
- Obtener los nodos hijos del elemento raíz (xmlDoc)
- Revisar el tipo de nodo de cada subnodo. Si el tipo de nodo es "
1
", es un nodo de tipo elemento - Si es un nodo de tipo elemento, se muestra el nombre del nodo
Navegación de relaciones de nodos
El siguiente código navega por el árbol de nodos utilizando las relaciones de los nodos:
Ejemplo
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Solo procesar nodos de tipo elemento (tipo 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Ejemplo de explicación:
- Supongamos que ya ha cargado"books.xml"Cargar en"
xmlDoc
- Obtener el nodo hijo del primer elemento 'book'
- Establecer la variable "y" para el primer subnodo del elemento "book"
- Para cada subnodo (desde el primer subnodo "
y
" inicio): - Revisar el tipo de nodo de cada subnodo. Si el tipo de nodo es "
1
"es un nodo de elemento - Si es un nodo de elemento, entonces salida el nombre del nodo
- Establecer "
y
"Variable establecida para el siguiente nodo同级, y luego ejecutar el ciclo de nuevo"
- Página anterior Nodo DOM
- Página siguiente Información de nodos DOM