Sumador

Páginas: 12 (2840 palabras) Publicado: 9 de julio de 2012
Java y XML: JDOM
Este es otro post de la serie de artículos sobre Java y XML. Tras haber visto cómo trabajar conSAX y DOM, ahora toca el turno de hablar un poco de JDOM.

JDOM es una API desarrollada específicamente para Java y da soporte al tratamiento de XML: parseo, búsquedas, modificación, generación y serialización. Es un modelo similar a DOM, pero no está creado ni modelado sobre DOM.Se trata de un modelo alternativo. La principal diferencia es que DOM fue desarrollado para que fuera independiente del lenguaje, mientras que JDOM está creado y optimizado específicamente para Java. Esto imprime a JDOM las ventajas inherentes a Java, lo que lo hacen que sea una API más eficiente y más natural de usar para el desarrollador Java y por tanto requerie un menor coste de aprendizaje.Al igual que DOM, JDOM genera un árbol de nodos al parsear un documento XML. En cuanto a lo tipos de nodos, son similares a los de DOM, aunque algunos cambia el nombre ligeramente. La jerarquía de clases también se ve algo modificada.

Mientras que en DOM todo hereda de la clase Node, en JDOM casi todo hereda de la claseContent, que se encuentran en el paquete org.jdom. Digo casi todo porqueni Document niAttribute (Attr en DOM) heredan de Content. La razon es que Document no se considera un contenido, sino más bien el continente y Attribute tampoco se considera un nodo, sino una propiedad de los nodos tipo Element.

Heredan de Content: Element, Comment y Text. De este último, Text, hereda CDATA(CDATASection en DOM). Por supuesto, hay más clases que heredan de Content y que formanel árbol de nodos, pero no las veremos en estos ejemplos ya que su uso es menos frecuente:DocType, EntityRef y ProccessingInstruction. Estas o sus equivalentes también existen en DOM.

Otra diferencia entre DOM y JDOM es que mientras en DOM todos estos tipos de nodos eraninterfaces, en JDOM son clases y por tanto para crear un objeto de cualquier tipo basta con usar el operador new. Porejemplo,
view plaincopy to clipboardprint?
1. Element etiqueta = new Element("nombre_etiqueta");  
2. CDATA cdata = new CDATA("Contenido del CDATA");  
3. Comment comentario = new Comment("Texto del comentario");  

Antes de pasar a los ejemplos, voy a comentar qué hay que hacer para incluir JDOM en tu proyecto. Lo primero es descargar la última versión de JDOM, por ahora la 1.1.Descomprime el fichero y sigue las intrucciones de uso. Si eres de los seguidores de la ley del mínimo esfuerzo, simplemente tienes que copiar los siguientes ficheros al directorio lib de tu proyecto:

* jdom.jar, el cual se encuentra en la carpeta build.
* jaxen-core.jar, jaxen-jdom.jar y saxpath.jar, que se encuentran en la carpeta lib.
* Es posible que necesites algunos otros jars que seencuentran en la carpeta lib. Al menos para los ejemplos publicados aquí no son necesarios.

Ahora sí, pasemos a lo interesante. Como siempre vamos a partir del siguiente XML:
view plaincopy to clipboardprint?
1. <?xml version="1.0" encoding="UTF-8"?>  
2. <etiquetaPrincipal xmlns:xela="http://www.latascadexela.es" >  
3.   <etiquetaHija id="1" atributo1="valorAtributo1" atributo2="valorAtributo2">  
4.       Texto dentro de la etiqueta hija  
5.    </etiquetaHija>  
6.    <!-- Comentario -->  
7.    <xela:etiquetaConNamespace descripcion="etiqueta con un namespace"/>    
8. </etiquetaPrincipal>  

Si tenéis cualquier duda podéis acudir al JavaDoc de JDOM. También podéis preguntarla aquí. Estaré encantado deayudar en lo que pueda.

Parseando un XML

Una de las ventajas de SAX (o la única) es que procesa los ficheros XML por trozos y por tanto no necesita tener todo el XML en memoria. Esa ventaja la han aprovechado los de JDOM y para parsear el XML a partir de un fichero se usa el SAXBuilder. Internamente usará un SaxHandlerque generará el árbol de nodos a partir del XML.
view plaincopy to...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • sumadores
  • Sumadores
  • Sumadores
  • sumadores
  • Sumadores
  • sumador
  • la sumadora
  • sumadores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS