Acceder a nodos DOM XML

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:

Pruebe usted mismo

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");
  }

Pruebe usted mismo

// 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.

Pruebe usted mismo

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>";
  }
}

Pruebe usted mismo

Ejemplo de explicación:

  1. Supongamos que ya ha cargado"books.xml"Cargar en" xmlDoc
  2. Obtener los nodos hijos del elemento raíz (xmlDoc)
  3. Revisar el tipo de nodo de cada subnodo. Si el tipo de nodo es "1", es un nodo de tipo elemento
  4. 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;
}

Pruebe usted mismo

Ejemplo de explicación:

  1. Supongamos que ya ha cargado"books.xml"Cargar en" xmlDoc
  2. Obtener el nodo hijo del primer elemento 'book'
  3. Establecer la variable "y" para el primer subnodo del elemento "book"
  4. Para cada subnodo (desde el primer subnodo "y" inicio):
  5. Revisar el tipo de nodo de cada subnodo. Si el tipo de nodo es "1"es un nodo de elemento
  6. Si es un nodo de elemento, entonces salida el nombre del nodo
  7. Establecer "y"Variable establecida para el siguiente nodo同级, y luego ejecutar el ciclo de nuevo"