Acceso a nodos XML DOM
- Página anterior Atributos y métodos DOM
- Página siguiente Información del nodo DOM
A través de DOM, puede acceder a cada nodo en el documento XML.
Ejemplo
El siguiente ejemplo utiliza un archivo XML books.xml.
función loadXMLDoc(), ubicado en JavaScript externo, utilizado para cargar archivos XML.
- accediendo a los nodos utilizando el índice de la lista de nodos
- Este ejemplo utiliza el método getElementsByTagname() para obtener el tercer elemento <title> en "books.xml".
- recorriendo los nodos utilizando la propiedad length
- Este ejemplo utiliza la propiedad length para recorrer todos los elementos <title> en "books.xml".
- ver el tipo de nodo del elemento
- Este ejemplo utiliza la propiedad nodeType para obtener el tipo de nodo de la raíz en "books.xml".
- recorriendo los nodos de elementos
- Este ejemplo utiliza la propiedad nodeType para manejar los nodos de elementos en "books.xml".
- recorriendo los nodos de elementos utilizando las relaciones de los nodos
- Este ejemplo utiliza la propiedad nodeType y la propiedad nextSibling para manejar los nodos de elementos en "books.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
- navegando por el árbol de nodos utilizando las relaciones entre los nodos
Método getElementsByTagName()
getElementsByTagName() devuelve todos los elementos que tienen el nombre de etiqueta especificado.
sintaxis
nodo.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. Para devolver todos los elementos <title> en el documento XML, utilice:
xmlDoc.getElementsByTagName("title");
Aquí, xmlDoc es el documento en sí mismo (nodo de documento).
Lista de Nodos DOM
getElementsByTagName() para devolver una lista de nodos (lista de nodos). La lista de nodos es un array de nodos.
El siguiente código utiliza loadXMLDoc() Establece "books.xml"Cargar xmlDoc en, luego almacenar una lista de nodos <title> en la variable x:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
Se puede acceder a los elementos <title> en x mediante índice. Para acceder al tercer <title>, puede escribir:
y=x[2];
Notas:Los índices comienzan en 0.
En capítulos posteriores de este tutorial, aprenderá más sobre las Listas de Nodos.
Longitud de Lista de Nodos DOM
La propiedad length define la longitud de la lista de nodos (es decir, el número de nodos).
Puede recorrer una lista de nodos utilizando la propiedad length:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
Ejemplo de explicación:
- Usar loadXMLDoc() Establece "books.xml"Cargar xmlDoc
- Obtener todos los elementos <title>
- Salida del valor del nodo de texto de cada elemento <title>
Tipo de Nodo
Documento XML documentElement La propiedad es el nodo raíz.
Propiedades del nodo nodeName La propiedad es el nombre del nodo.
Propiedades del nodo nodeType Las propiedades son el tipo de nodo.
En la siguiente sección de este tutorial, aprenderá más sobre las propiedades de los nodos.
Recorrer el nodo
El siguiente código itera sobre los subnodos del nodo raíz, que también son nodos de elemento:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Procesar solo nodos de elemento (tipo 1) document.write(x[i].nodeName); document.write("<br />"); } }
Ejemplo de explicación:
- Al usar loadXMLDoc() Establece "books.xml"Cargar en xmlDoc"
- Obtenga los subnodos del elemento raíz
- Verifique 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, muestra el nombre del nodo
Navegación utilizando relaciones de nodos
El siguiente código navega por el árbol de nodos utilizando las relaciones de los nodos:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Procesar solo nodos de elemento (tipo 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- Al usar loadXMLDoc() Establece "books.xml"Cargar en xmlDoc"
- Obtiene el primer hijo del primer elemento "book"
- Establece la variable "y" como el primer hijo del primer elemento "book"
- Verifica el tipo de nodo de cada nodo hijo, si el tipo de nodo es "1", es un nodo de elemento
- Si es un nodo de elemento, muestra el nombre del nodo
- Establece la variable "y" como el siguiente nodo hermano y ejecuta el ciclo nuevamente
- Página anterior Atributos y métodos DOM
- Página siguiente Información del nodo DOM