Modificar un DOM (Document, Node y Element)
Artículo por Club Developers · 27 mayo 2006
5318 vistas
El API DOM ofrece con las clases Document, Node y derivados (Element, por ejemplo) una serie de métodos que permiten la modificación del documento.
Veamos un resumen de los disponibles para Document, Node y Element:
Métodos de Document
Métodos de Node
Métodos de Element
Estos tres métodos tienen variantes. Los métodos XXXNode permiten deveolver la instancia de Attr modificado o borrado.
Para un ejemplo de uso de algunos de estos métodos leer [iurl=90&all=0&fs=904#914]Crear un DOM[/iurl].
Estos métodos sólo modifican el árbol en memoria. Para modificar el código del XML tendremos que usar XSLT: [iurl=90&all=0&fs=916#921]Crear o modificar un fichero XML con DOM y XSLT[/iurl].
Veamos un resumen de los disponibles para Document, Node y Element:
Métodos de Document
- adoptNode(Node source): importa el nodo pasado por parámetro. Si pertenece al árbol se borrará. El método devuelve el nodo adoptado o null en caso de error.
- importNode(Node importedNode, boolean deep): importa, en el documento, el nodo pasado por parámetro y sus hijos (si deep vale true). El do importade desta maner no tieneparent y, contrariamente a adoptNode, es una simple copia. Como resultado devuelve el nodo.
- renameNode(Node n, String namespaceURI, String qualifiedName): renombra el nodo pasado por parámetro y devuelve éste último. Atención, sólo los nodos de tipo item y Attr se pueden renombrar de esta manera.
- setDocumentURI(String documentURI): reemplaza la URI del documento.
- setXmlStandalone(boolean xmlStandalone): define si el XML es "standalone" o no.
- setXmlVersion(String xmlVersion): define la versión del XML ("1.0" por defecto).
- normalizeDocument(): este método valida las modificaciones realizadas al DOM. Ver también el método normalize() de la interfaz Node.
Métodos de Node
- appendChild(Node newChild): añade el nodo pasado por parámetro al final de los otros hijos del nodo. Devuelve el nodo añadido.
- insertBefore(Node newChild, Node refChild): añade "newChild" antes de "refChild" y devuelve "newChild".
- removeChild(Node oldChild): borra el nodo pasado por parámetro y lo devuelve como resultado.
- replaceChild(Node newChild, Node oldChild): reemplaza oldChild por newChild y devuelve oldChild.
- setNodeValue(String nodeValue): pone "nodeValue" como valor para el nodo. ver [iurl=90&all=0&fs=904#909]Tipos de nodos[/iurl] para saber los posibles valores.
- setPrefix(String prefix): pone "prefix" como nuevo prefijo al nodo.
- setTextContent(String textContent): pone "textContent" como contenido del nodo. Atención, esto borra el conjunto de nodos hijos.
Métodos de Element
- removeAttribute(String name): borra el atributo "name".
- setAttribute(String name, String value): crea un nuevo atributo (o modifica su valor si ya existe).
- setIdAttribute(String name, boolean isId): crea un nuevo atributo de tipo ID (o modifica su valor si existe).
Estos tres métodos tienen variantes. Los métodos XXXNode permiten deveolver la instancia de Attr modificado o borrado.
Para un ejemplo de uso de algunos de estos métodos leer [iurl=90&all=0&fs=904#914]Crear un DOM[/iurl].
Estos métodos sólo modifican el árbol en memoria. Para modificar el código del XML tendremos que usar XSLT: [iurl=90&all=0&fs=916#921]Crear o modificar un fichero XML con DOM y XSLT[/iurl].