|
UTILIZACION DE LAS INTERFACES DOM |
Interfaces del DOM
- El DOM define las siguientes interfaces de objetos XML:
- Document. Proporciona información del documento. Permite crear nuevos nodos en el documento.
- Element. Expone propiedades y métodos para manipular los elementos del documento y sus atributos.
- Node. Representa a cualquier nodo del documento.
- NodeList. Colección de nodos a los que se puede acceder por medio de un índice.
- Attr. Permite acceder a los atributos de un nodo.
- CharacterData. Proporciona atributos y métodos para manipular los datos de caracteres.
- DocumentType. Proporciona información contenida en la etiqueta <!DOCTYPE>.
Crear un objeto Document
- El primer paso para acceder un documento, es crear un objeto Document.
- La forma de hacerlo depende del procesador utilizado.
- En el caso del MSXML sería:
var doc = CreateObject (“Microsoft.XMLDOM”)
- Posteriormente, se debe cargar el documento en el objeto
- En el caso de Microsoft, se proporcionan dos métodos:
- loadXML(texto_XML)
doc.load(“<customer><first-name&t;Alberto</first_name></customer>”)
- load(URL)
doc.load(“c:\documento.xml”)
- El atributo documentElement del objeto Document proporciona el elemento raíz (objeto Element) del documento:
var docElement = doc.documentElement
Recorrer el árbol del documento
- La interfaz Node proporciona una serie de propiedades para acceder a los distintos nodos del árbol:
- childNodes: Colección de todos los nodos secundarios que aparecen debajo del elemento documento. Contiene un objeto NodeList.
- firstChild: Primer secundario del elemento.
- lastChild: Ultimo secundario del elemento.
La siguientes funciones, realizan la carga de el documento Movies.xml y muestran, en una página HTML, los títulos de las películas y el comentario:


- En el ejemplo anterior, se hace uso del método item() de la interfaz NodeList, el cual devuelve un objeto Node.
- La interfaz Node, dispone también de las propiedades:
- text: Contenido de texto del nodo y todos sus descendientes.
- firstChild: Primer secundario del nodo.
- lastChild: Ultimo secundario del nodo.
- nextSibling: Siguiente igual del nodo.
- previousSibling: Anterior igual del nodo.
- parentNode: Devuelve el primario del nodo actual.
- nodeName: Nombre cualificado del nodo.
- nodeType: Tipo de nodo DOM XML. 1 Elemento, 2 Atributo, 3 Texto...
- nodeValue: Valor del nodo. En el caso de un Elemento, su valor es null. Para un atributo será el valor del atributo.
- attributes: Colección de atributos del nodo(objeto Attr).
- ownerDocument: Referencia al objeto documento que contiene al nodo.
- La interfaz Node dispone además, del método hasChildNodes() que devuelve true si el nodo posee nodos secundarios.
Envío del contenido del documento al Navegador
- La propiedad xml de la interfaz Document, devuelve el contenido de todos los elementos del documento.
- Mediante el método transformNode(docestilo), se obtiene el contenido del documento formateado.
Acceso a un tipo de elemento.
- La interfaz Document, proporciona el método getElementsByTagName(), que devuelve un NodeList con los elementos de un determinado tipo.
- Mediante la propiedad tagName de la interfaz Element, se puede conocer el nombre de un elemento.
- El siguiente ejemplo, muestra el listado de actores de Movies.xml.


Atributos de un elemento
- La propiedad attributes de la interfaz Element, devuelve la colección de atributos del elemento (objetos Attr).
- La interfaz Attr, proporciona las siguientes propiedades para manejar los atributos:
- name: nombre del atributo.
- value: valor del atributo.
El siguiente ejemplo, muestra las películas de tipo comedia:

- Además de las propiedades anteriores, la interfaz Element dispone de los siguientes métodos para manipular atributos:
- getAttribute(nombre): Recupera el valor de un atributo especificado.
- setAttribute(nombre,valor): Establece un valor en el atributo, si no existe se crea.
- getAttributeNode(nombre): Devuelve el objeto atribute.
- setAttributeNode(attr): Agrega el objeto attribute.
- removeAttribute(nombre): Elimina el atributo.
Interfaz CharacterData
- Permite manipular las cadenas del documento, ya sean nodos de texto, nodos de comentario o cualquiera de los otros nodos que toman un valor de cadena.
- Entre las propiedades más importantes destacan:
- data: Devuelve el texto del nodo como cadena unicode.
- length: Longitud de la cadena
- Entre sus métodos destacan:
- appendData(cadena): Añade la cadena al final del nodo.
- insertData(desp, cadena): Inserta la cadena en la posición indicada.
- deleteData(desp, numcar): Elimina una parte de la cadena.
- replaceData(desp, numcar, cadena): Reemplaza un trozo de la cadena por otra.
Crear nuevos objetos.
- La interfaz Document dispone de las métodos create*(), que crean nuevos objetos en el documento:
- createElement(nombre). Crea un nuevo elemento a partir de su nombre, devuelve el objeto Element.
- createAtribute(nombre). Crea un objeto Atrr con nombre.
- createTextNode(cadena). Crea un nodo de texto a partir de la cadena.
Añadir y eliminar nodos
- La Interfaz Node proporciona una serie de métodos que permiten añadir y eliminar nodos del árbol de documento. Estos son:
- insertBefore(nodo,referencia). Inserta el nodo pasado como parámetro, antes del nodo secundario de referencia. Devuelve el nodo añadido.
- appendChild(nodo). Añade el nuevo nodo al final de los demás nodos secundarios. Si ya existe en el árbol será eliminado de donde está.
- replaceChild(nodo,referencia). Sustituye el nodo secundario de referencia por el nuevo nodo. Devuelve una copia del nodo sustituido.
- removeChild(referencia). Elimina el nodo indicado. Devuelve dicho nodo.
- cloneNode(modo). Devuelve un duplicado del nodo(sin padre, parentNode=null). Si modo es true, clonará también los nodos descendentes,
si es false solo clonará al propio nodo.
|
|
|
|
|
EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es
|
|
|
|
|
|
|