Con el DOM, puede acceder a todos los nodos de un documento XML.
Inténtelo usted mismo - Ejemplos
Los ejemplos siguientes utilizan el archivo XML books.xml .
Acceder a un nodo utilizando su número de índice en una lista de nodos
Utilice la getElementsByTagName() método para conseguir el tercer <title> elemento en "books.xml"
Bucle a través de nodos utilizando la propiedad length
Utilice la propiedad de longitud para recorrer todos <title> elementos en "books.xml"
Ver el tipo de nodo de un elemento
Utilice la propiedad nodeType para obtener el tipo de nodo del elemento raíz en "books.xml" .
Bucle a través de nodos de elementos
Utilice la propiedad nodeType de nodos de elementos de proceso solamente en "books.xml" .
Bucle a través de nodos de elementos utilizando relaciones de nodo
Utilice la propiedad y la propiedad nodeType nextSibling para procesar nodos de elemento en "books.xml" .
El acceso a los nodos
Se puede acceder a un nodo de tres maneras:
1. Mediante el uso de la getElementsByTagName() método
2. Por un bucle a través (traversing) el árbol de nodos.
3. Al navegar por el árbol de nodos, utilizando las relaciones de nodo.
El getElementsByTagName() Método
getElementsByTagName () devuelve todos los elementos con un nombre de etiqueta especificada.
Sintaxis
node.getElementsByTagName("tagname");
Ejemplo
El ejemplo siguiente devuelve todos los <title> elementos bajo el elemento de x:
x.getElementsByTagName("title");
Tenga en cuenta que el ejemplo anterior sólo devuelve <title> elementos bajo el nodo x. Para devolver todos los <title> elementos en el uso de documentos XML:
xmlDoc.getElementsByTagName("title");
donde xmlDoc es el propio documento (document node) .
Lista de nodos DOM
El getElementsByTagName() método devuelve una lista de nodos. Una lista de nodos es un conjunto de nodos.
x = xmlDoc.getElementsByTagName("title");
La <title> elementos en x se puede acceder por número de índice. Para acceder a la tercera <title> se puede escribir ::
y = x[2];
Note: El índice comienza en 0.
Usted aprenderá más sobre las listas de nodos en un capítulo posterior de este tutorial.
Lista de nodos DOM Longitud
La propiedad de longitud define la longitud de una lista de nodos (the number of nodes) .
Puede recorrer una lista de nodos mediante el uso de la propiedad de longitud:
Ejemplo
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
Inténtalo tú mismo " Tipos de nodos
El documentElement propiedad del documento XML es el nodo raíz.
El nodeName propiedad de un nodo es el nombre del nodo.
El nodeType propiedad de un nodo es el tipo del nodo.
Va a aprender más sobre las propiedades del nodo en el siguiente capítulo de este tutorial.
Los nodos de desplazamiento
El código siguiente se reproduce a través de los nodos hijos, que también son nodos de elementos del nodo raíz:
Ejemplo
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++)
{
// Process only element nodes (type 1)
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
Inténtalo tú mismo " Ejemplo explicó:
- Supongamos que ha cargado " books.xml " en xmlDoc
- Obtener los nodos hijos del elemento raíz (xmlDoc)
- Para cada nodo hijo, comprobar el tipo de nodo. Si el tipo de nodo es "1" es un nodo elemento
- Salida el nombre del nodo si es un nodo de elemento
Las relaciones de nodo Navegación
El siguiente código se desplaza por el árbol de nodos utilizando las relaciones de nodo:
Ejemplo
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++)
{
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
Inténtalo tú mismo " Ejemplo explicó:
- Supongamos que ha cargado " books.xml " en xmlDoc
- Obtener los nodos secundarios del primer elemento de libro
- Ajuste el "y" variable para ser el primer nodo hijo del primer elemento de libro
- Para cada nodo hijo (starting with the first child node "y") :
- Compruebe el tipo de nodo. Si el tipo de nodo es "1" es un nodo elemento
- Salida el nombre del nodo si es un nodo de elemento
- Ajuste el "y" variable para ser el otro nodo del mismo, y correr a través del bucle de nuevo