Tomando el modelo de objeto de documento (DOM) enfoque de documentos XML
La dicotomía entre el pensamiento lineal y separa el pensamiento holístico (respectivamente) SAX del DOM.
SAX (Simple API for XML) trata un documento XML de forma lineal, a través de un pedazo de documento por pieza, de principio a fin. Pero con DOM (el Document Object Model), de saltar y mirar a todo el documento. Un poco más tarde, hacer zoom en el elemento raíz, y luego centrarse más en un elemento dentro del elemento raíz. En algunas situaciones, saltando en es exactamente lo que necesita hacer.
Nodos DOM
Con DOM, se piensa en un documento XML como tener varios nodos. Ejemplos de nodos incluyen elementos, atributos, comentarios, y los caracteres entre un par de etiquetas de inicio y fin. Todo un documento XML es en sí mismo un nodo. Con todo, un documento XML puede tener 12 diferentes tipos de nodos.
Los nodos de un árbol
Tomados en conjunto, todos los nodos DOM en un documento XML forman un árbol. Tomemos, por ejemplo, el documento en el Listado 1. árbol DOM de este documento parece el árbol que se muestra en la Figura 1.
Ficha 1: El club de los amantes de la anchoa
lt;? xml version = "1.0" encoding = "UTF-8">
Fundador, Presidente, Secretario, Director de Publicidad
El árbol tiene once nodos. Para contarlos, empezar contando las ramas del árbol (convenientemente mostradas en la Figura 1). Luego, cuente el apellido = rama "Herbert" Miembro por segunda vez. (Esta rama tiene dos nodos DOM en él. El elemento nombrado miembro es un nodo y atributo del elemento apellido = "Herbert" es un nodo.)
Un tratado sobre los árboles
Hay algunas cosas que usted descubrirá por mirando el árbol de la figura 1.
- Algunos nodos son hijos de otros nodos.
- Por ejemplo, el nodo es un miembro niño del nodo AnchovyLoversClub. Eso es porque, en el Listado 1, el elemento Miembro está anidado dentro del elemento AncoverLoversClub.
- De manera similar, el nodo Permanente es un hijo del nodo miembros. Esta analogía familia sigue y sigue. El nodo es el miembro padre del nodo de pie, y la AncoverLoversClub es el padre del nodo miembros.
- Todo el documento es un nodo.
- Este es un punto importante, y es fácil de olvidar. En el Listado 1, elemento raíz del documento es AnchovyLoversClub. Pero en la Figura 1, el nombre AnchovyLoversClub no es en la parte superior del árbol. En su lugar, la palabra #document es en la parte superior del árbol.
- Nodo superior de un árbol DOM representa todo un documento XML. Los errores se producen cuando los programadores piensan que elemento raíz del documento se inicia el árbol. (No es así.)
- Comentarios y fragmentos de texto son nodos.
- En la Figura 1, el comentario es un nodo hijo del nodo documento. Eso es porque, en el Listado 1, el comentario es parte del documento. El comentario no se anida dentro de cualquiera de los elementos del documento.
- Una vez más, jugamos genealogía. Decimos que el nodo #document tiene dos hijos - un nodo de comentario y un nodo AnchovyLoversClub. Estos dos nodos - el comentario y la AnchovyLoversClub - se llaman hermanos.
- También en la Figura 1, el Fundador de texto, Presidente, Secretario, Publicidad Manager es parte de un nodo. En el Listado 1, el Fundador de texto, Presidente, Secretario, Publicidad Manager es el interior del elemento Permanente. Así, en la figura 1, este nodo de texto es un hijo del nodo Permanente.
- Incluso texto ignorable es parte de un nodo.
- De acuerdo con la Figura 1, el nodo AnchovyLoversClub tiene tres nodos directos para niños - dos nodos #text etiquetados, y otro nodo etiquetado miembros. Eso es porque, en lo que se refiere a DOM, el nodo AnchovyLoversClub tiene tres cosas en él.
retorno de carro y tres espacios en blanco
Elemento Miembro
retorno de carro
- La situación se ilustra en la Figura 2.
- Los tres hijos del nodo miembro - dos piezas de espacios en blanco y un elemento de pie - son todos hermanos.
- Ahora, observe los puntos y la [CR] en las figuras 1 y 2. En el diagrama de árbol, un punto representa un espacio en blanco, y [CR] representa un retorno de carro. Con DOM, todos los espacios en blanco ignorables entre la etiqueta de inicio AnchovyLoversClub y el Miembro Etiqueta inicial forma un nodo. Comenzando con el soporte angular que termina la etiqueta inicial AnchovyLoversClub, que vaya a la línea siguiente, y entonces usted tiene tres espacios en blanco antes del paréntesis angular que abre iniciar el miembro etiqueta. Todo eso es un nodo DOM.
- Etiquetas finales no son nodos.
- Con SAX, usted puede estar pensando en términos de poner en marcha el elemento de miembros, y más tarde termina el elemento miembros. En DOM, usted no piensa de esta manera. En su lugar, se visita el elemento miembros sólo una vez. Dentro de esa visita, se visita el elemento de pie y un poco de texto. DOM no tiene ningún método correspondiente al método SAX endElement.