Ubicación de nodos XML DOM
- Página anterior Navegador DOM
- Página siguiente Obtener nodos DOM
Se puede localizar el nodo utilizando la relación entre nodos.
Ejemplo
El siguiente ejemplo utiliza archivos XML books.xml.
Función loadXMLDoc()ubicado en JavaScript externo, utilizado para cargar archivos XML.
- Obtener el nodo padre del nodo
- Este ejemplo utiliza la propiedad parentNode para obtener el nodo padre.
- Obtener el primer hijo del nodo
- Este ejemplo utiliza el método firstChild() y una función personalizada para obtener el primer hijo de un nodo.
Localizar nodos DOM
Acceder a los nodos en el árbol de nodos a través de las relaciones entre los nodos, generalmente llamado localizar nodos ("navegación de nodos").
En el XML DOM, las relaciones entre los nodos se definen como atributos del nodo:
- parentNode
- childNodes
- firstChild
- lastChild
- nextSibling
- previousSibling
La siguiente imagen muestra books.xml Una parte de la estructura del árbol de nodos y explica las relaciones entre los nodos:

DOM - Padre del nodo
Todos los nodos tienen un solo padre. El siguiente código localiza al padre del <book>:
xmlDoc=loadXMLDoc("books.xml"); x = xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);
Ejemplo de explicación:
- A través de loadXMLDoc() Coloca "books.xml" se carga en xmlDoc
- Obtener el primer elemento <book>
- Mostrar el nombre del nodo del padre del "x"
Evitar nodos de texto vacíos
Firefox y otros navegadores consideran los espacios en blanco vacíos y los saltos de línea como nodos de texto, mientras que IE no hace lo mismo.
Esto causará problemas al usar los siguientes atributos: firstChild, lastChild, nextSibling, previousSibling.
Para evitar ubicar el nodo de texto vacío (espacios en blanco y saltos de línea entre nodos de elemento), usamos una función para verificar el tipo del nodo:
function get_nextSibling(n) { y = n.nextSibling; while (y.nodeType!=1) { y=y.nextSibling; } return y; }
Con la función anterior, podemos usar get_nextSibling(node) en lugar del atributo node.nextSibling.
Explicación del código:
El tipo de nodo del elemento es 1. Si el nodo del mismo nivel no es un nodo de elemento, se mueve al siguiente nodo hasta encontrar un nodo de elemento. De esta manera, en IE y Firefox se obtiene el mismo resultado.
Obtener el primer elemento
El siguiente código muestra el primer elemento del primer <book>:
<html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> <script type="text/javascript"> //verificar si el primer nodo es un nodo de elemento función get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName); </script> </body> </html>
Salida:
title
Ejemplo de explicación:
- A través de loadXMLDoc() Coloca "books.xml"Carga en xmlDoc"
- Usa la función get_firstChild en el primer <book> para obtener el primer nodo hijo dentro del nodo de elemento
- Salida del primer nodo hijo (que pertenece a un nodo de elemento)
Ejemplo
El siguiente ejemplo utiliza funciones similares:
- Página anterior Navegador DOM
- Página siguiente Obtener nodos DOM