EXES
¿Qué problema tiene HTML?
¿Que es XML?
Análisis de documentos XML
Validación de documentos XML
Diseño y creación de DTD’s
Sintaxis de las DTD
Esquemas
Diseño y creación de esquemas
Herramientas XML
Presentacion de documentos XML
Dar formato a documentos XML
Aplicaciones XML
Estudio del API DOM
Utilizacion de las interfaces DOM
Acceso a datos con XML
Utilizacion del API SAX
Créditos
La Compañía
 
Área de Programación y Desarrollo
  Manual de XML
www.exes.es
Tel: 902 360 417
    Principal
 Exes   Contactar 

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
Ejemplo de lectura de un documento XML con Java

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:

    Recorrer el árbol de un documento con JavaScript

    Recorrer el árbol de un documento con Java

  • 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.

Acceso a un tipo de elemento

Acceso a un tipo de elemento

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:

    Atributos de un elemento

  • 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.
··> Ver todos los cursos
··> Si necesitas más información, contáctanos aquí
 
 
 
Sello de Calidad   Sello de Calidad
  EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es