Imprimir

Nodos en el modelo DOM de XML

En el modelo DOM para XML, se considera un nodo a cualquier cosa que se encuentra dentro del documento:

Para manipular los nodos en Java se dispone de la clase Node, que se encuentra en el paquete org.w3c.dom al igual que las clases de los distintos tipos de nodos que se acaban de comentar. Los nombres de estas clases coinciden con las de otras clases de otros paquetes de Java, por lo que puede ser recomendable importar todas las clases de ese paquete para evitar confusiones:

import org.w3c.dom.*

Métodos principales para navegación por los nodos

Node getFirstChild()

Retorna el primer nodo hijo de este nodo. Si no lo hay, retorna null.

Node getNextSibling()

Retorna el nodo inmediatamente siguiente (hermano) a este nodo. Si no lo hay, retorna null.

Node getParentNode()

Retorna el padre de este nodo. Todos los nodos, excepto los de tipo Attr, Document, DocumentFragment, Entity, y Notation pueden tener un padre. Sin embargo, será null si el nodo está recién creado y no ha sido añadido todavía al árbol, o si ha sido eliminado del árbol.

NodeList getChildNodes()

Retorna una lista de la clase NodeList que contiene todos los nodos hijo de este nodo. Si no hay nodos hijo, la lista estará vacía.

La clase NodeList dispone de los siguientes métodos que permiten obtener los nodos que componen una de esas listas:

int getLength()

Retorna el número de nodos de la lista.

Node item(int index)

Retorna el nodo de la lista que ocupa la posición index.

Métodos principales para gestionar los nodos

Node appendChild(Node hijoNuevo)

Añade el nodo hijoNuevo al final de la lista de hijos de este nodo. Si el hijoNuevo  ya está en el árbol, se elimina previamente. Retorna el nodo que se ha añadido.

Node insertBefore(Node hijoNuevo, Node hijoReferencia)

Inserta el nodo hijoNuevo antes del nodo hijoReferencia que ya existe. Si el nodo hijoReferencia es null, se inserta el nodo  hijoNuevo al final de la lista de nodos hijo. Retorna el nodo que se ha insertado.

Node removeChild(Node hijoViejo)

Elimina, de la lista de hijos, el hijo indicado por parámetro como hijoViejo y lo retorna.

Node replaceChild(Node hijoNuevo, Node hijoViejo)

Sustituye el nodo hijoViejo que se encuentre en la lista de nodos hijo por el nodo hijoNuevo.

Métodos principales para manipular la información del nodo

short getNodeType()

Retorna un código identificativo del tipo de nodo que se trata. Para trabajar cómodamente con esos códigos, la clase Node proporciona una serie de constantes para identificar los tipos de nodos:

Tipo de nodo Constante
Attr ATTRIBUTE_NODE
CDATASection CDATA_SECTION_NODE
Comment COMMENT_NODE
Document DOCUMENT_NODE
DocumentFragment DOCUMENT_FRAGMENT_NODE
DocumentType DOCUMENT_TYPE_NODE
Element ELEMENT_NODE
Entity ENTITY_NODE
EntityReference ENTITY_REFERENCE_NODE
Notation NOTATION_NODE
ProcessingInstruction PROCESSING_INSTRUCTION_NODE
Text TEXT_NODE
String getNodeName()

Retorna el nombre de nodos de determinados tipos, como los atributos (Attr) y elementos (Element).

String getNodeValue()

Retorna el valor de nodos de determinados tipos, como los atributos (Attr), comentarios (Comment) y textos (Text).

String getTextContent()

Retorna el texto del nodo y de sus descendientes.

void setNodeValue(String valorNodo)

Establece el valor de nodos de determinados tipos, como los atributos (Attr), comentarios (Comment) y textos (Text).