Nodos XML DOM
De acuerdo con XML DOM, todo en un documento XML es un nodo :
- Todo el documento es un nodo de documento.
- Cada elemento XML es un nodo de elemento
- El texto en los elementos XML son nodos de texto.
- Cada atributo es un nodo de atributo
- Los comentarios son nodos de comentarios.
Ejemplo de DOM
Mire el siguiente archivo XML ( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
El nodo raíz en el XML anterior se denomina <librería>.
Todos los demás nodos del documento están contenidos en <librería>.
El nodo raíz <librería> contiene 4 nodos <libro>.
El primer nodo <libro> contiene los nodos secundarios: <título>, <autor>, <año> y <precio>.
Los nodos secundarios contienen un nodo de texto cada uno, "Everyday Italian", "Giada De Laurentiis", "2005" y "30.00".
El texto siempre se almacena en nodos de texto
Un error común en el procesamiento de DOM es esperar que un nodo de elemento contenga texto.
Sin embargo, el texto de un nodo de elemento se almacena en un nodo de texto.
En este ejemplo: <año>2005</año> , el nodo de elemento <año> contiene un nodo de texto con el valor "2005".
¡"2005" no es el valor del elemento <año>!
El árbol de nodos XML DOM
El DOM XML ve un documento XML como una estructura de árbol. La estructura de árbol se llama árbol de nodos.
Se puede acceder a todos los nodos a través del árbol. Su contenido se puede modificar o eliminar, y se pueden crear nuevos elementos.
El árbol de nodos muestra el conjunto de nodos y las conexiones entre ellos. El árbol comienza en el nodo raíz y se ramifica hacia los nodos de texto en el nivel más bajo del árbol:
La imagen de arriba representa el archivo XML books.xml .
Padres, hijos y hermanos del nodo
Los nodos del árbol de nodos tienen una relación jerárquica entre sí.
Los términos padre, hijo y hermano se utilizan para describir las relaciones. Los nodos padres tienen hijos. Los niños en el mismo nivel se llaman hermanos (hermanos o hermanas).
- En un árbol de nodos, el nodo superior se llama raíz.
- Cada nodo, excepto la raíz, tiene exactamente un nodo principal
- Un nodo puede tener cualquier número de hijos.
- Una hoja es un nodo sin hijos.
- Los hermanos son nodos con el mismo padre
La siguiente imagen ilustra una parte del árbol de nodos y la relación entre los nodos:
Debido a que los datos XML están estructurados en forma de árbol, se pueden recorrer sin conocer la estructura exacta del árbol y sin conocer el tipo de datos que contiene.
Aprenderá más sobre cómo atravesar el árbol de nodos en un capítulo posterior de este tutorial.
Primer Hijo - Último Hijo
Mire el siguiente fragmento XML:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
En el XML anterior, el elemento <title> es el primer hijo del elemento <book>, y el elemento <price> es el último hijo del elemento <book>.
Además, el elemento <libro> es el nodo principal de los elementos <título>, <autor>, <año> y <precio>.