Los últimos tutoriales de desarrollo web
 

XML Los nodos DOM


En el DOM, todo en un documento XML es un nodo.


Los nodos DOM

De acuerdo con el DOM, todo en un documento XML es un node .

El DOM dice:

  • Todo el documento es un nodo de documento
  • Cada elemento XML es un nodo elemento
  • El texto en los elementos XML son los nodos de texto
  • Cada atributo es un nodo de atributo
  • Los comentarios son nodos de comentario

Ejemplo DOM

Mira el siguiente archivo XML ( books.xml ):

×

Encabezamiento

<?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 <bookstore> . Todos los otros nodos en el documento están contenidos dentro de <bookstore> .

El nodo raíz <bookstore> tiene cuatro <book> nodos.

El primer <book> nodo tiene cuatro nodos: <title>, <author>, <year> y <price> , que contiene un nodo de texto cada uno, "Everyday Italian", "Giada De Laurentiis" , "2005" , y "30.00" .


El texto se almacena siempre en los nodos de texto

Un error común en el procesamiento DOM es esperar un nodo elemento para contener el texto.

Sin embargo, el texto de un nodo de elemento se almacena en un nodo de texto.

En este ejemplo: <year>2005</year> , el nodo de elemento <year> , tiene un nodo de texto con el valor "2005" .

"2005" es not el valor de la <year> elemento!


El XML DOM árbol de nodos

El XML DOM considera que un documento XML como una estructura de árbol. La estructura de árbol se denomina un node-tree.

Todos los nodos se puede acceder a través del árbol. Sus contenidos pueden ser modificados o eliminados, y los nuevos elementos se pueden crear.

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 a los nodos de texto en el nivel más bajo del árbol:

árbol de nodos DOM

La imagen de arriba representa el archivo XML books.xml .


Los padres de nodo, hijos y hermanos

Los nodos en el árbol de nodos tienen una relación jerárquica entre sí.

El términos padre, hijo, hermano y se utilizan para describir las relaciones. Los nodos padres tienen hijos. Niños en el mismo nivel se llaman hermanos (brothers or sisters) .

  • En un árbol de nodos, el nodo superior se llama la raíz
  • Cada nodo, excepto la raíz, tiene exactamente nodo de uno de los padres
  • Un nodo puede tener cualquier número de hijos
  • Una hoja es un nodo sin hijos
  • Los hermanos son los nodos con el mismo padre

La siguiente imagen ilustra una parte del árbol de nodos y la relación entre los nodos:

árbol de nodos

Dado que los datos XML se estructura en forma de árbol, que puede ser atravesada sin conocer la estructura exacta del árbol y sin conocer el tipo de datos contenidos en su interior.

Va a aprender más acerca de atravesar el árbol de nodos en un capítulo posterior de este tutorial.


Primer niño - Last Child

Mira el fragmento XML siguiente:

<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 <title> elemento es el primer hijo de la <book> elemento y el <price> elemento es el último hijo del <book> elemento.

Por otra parte, el <book> elemento es el nodo principal del <title>, <author>, <year> , and <price> elements. <title>, <author>, <year> , and <price> elements.