Manipular archivos XML usando Java mediante JDOM

agosto 16, 2009 a las 2:12 pm | Publicado en JDOM, Programacion | 13 comentarios
Etiquetas: , , , , , , , ,

En este tutorial vamos a ver cómo manejar archivos XML usando el lenguaje de programación Java.

Para hacer este manejo se necesita un API que nos permita manipular archivos XML desde Java. La verdad existen muchos basta hacer una búsqueda en Google para encontrar varios API que nos permiten hacer eso.

Entre los muchos API que existen hay uno particularmente fácil de usar, cuando hacíamos este proyecto en la Universidad empezamos desde cero, el ingeniero solo nos envío a hacer un programa que manipule un archivo XML relacionado con un sistema de riego usando como lenguaje de programación Java y además almacene información en una base de datos de PostgreSQL al mismo tiempo, el único problema es que no sabíamos como hacer eso.

Fue así que di con estos API’s pero entre tantos no sabíamos cuál usar. Finalmente la mayoría de tutoriales nos llevaba a un API que parecía ser lo bastante fácil de manejar, así que lo escogimos, se llama JDOM y se lo puede bajar gratuitamente de la página http://www.jdom.org/

Aquí no vamos a explicar su funcionamiento completo, es más ni siquiera sé qué nomás permite este API. Así que nos limitaremos a lo básico: crear nuevos elementos en un archivo XML y los eliminaremos. Por cierto, con JDOM puedes hacer todo, desde crear un archivo XML desde cero, hasta manipular uno ya existente, incluyendo poder hacer consultas XPath.

En la parte de documentación de JDOM en http://www.jdom.org/docs/apidocs/ podrás conocer todos los componentes de este API.

Si buscas más información de este API aquí te dejo un buen tutorial que podría servirte: http://www.webtaller.com/construccion/lenguajes/java/lecciones/java-xml-jdom.php

Al descargarte el JDOM te vas a bajar un archivo comprimido ZIP, aquí tienes los archivos para bajarte: http://www.jdom.org/dist/binary/debes bajarte la última versión, ya sea en formato .zip o .tar.gz.

Para usarlo solo debes descomprimir este archivo en la ruta Classpath, es decir, donde están los archivos .class, yo trabajé con Netbeans así que descromprimí el archivo dentro de la carpeta build/classes.

Como había mencionado antes, el programa también hace un almacenamiento en una base de datos de PostgreSQL, para eso necesitamos el JDBC necesario que se lo puede descargar de http://jdbc.postgresql.org/ allí te bajarás un archivo .jar solo debes descomprimirlo en la misma ruta que el JDOM, es decir, en el Classpath.

Aquí no vamos a explicar el funcionamiento de JDOM ni el JDBC para conexión con Postgres, simplemente mostraremos el funcionamiento del programa. Existen gran cantidad de manuales en Internet que te podrían ayudar. Aquí solo se pretende ser una guía de lo que puedes hacer con JDOM.

El programa está hecho con NetBeans y desde la página de MyGnet te puedes bajar todo el programa y lo puedes abrir como Proyecto y ejecutarlo inmediatamente, o si no aquí te voy a dejar los archivos por partes para que los compiles creando un proyecto nuevo, ya sea usando NetBeans, Eclipse  o cualquier programa que te permita programar en Java.

Antes de ir a los códigos vamos a ver el programa funcionando. Antes cabe mencionar el hecho de que este programa fue hecho para manejar un archivo XML de un sistema de riego, modificando el código podemos manejar cualquier cualquier archivo XML.

El archivo XML que usaremos se llama RiegoVale.xml y contiene lo siguiente:

<?xml version=»1.0″ encoding=»UTF-8″?>
<SistemaRiego>
<tipo riego=»Inundacion»>
<Aplicacion>Cultivos de arroz</Aplicacion>
<CostoInicial>Bajo</CostoInicial>
<ConsumoEnergia>Baja</ConsumoEnergia>
<eficiencia>40%-65%</eficiencia>
<Descripcion>El agua es distribuida superficialmente sobre el terreno de regado</Descripcion>
</tipo>
<tipo riego=»Goteo»>
<Aplicacion>Cultivos de espaciamiento amplio</Aplicacion>
<CostoInicial>Alta</CostoInicial>
<ConsumoEnergia>Mediana</ConsumoEnergia>
<eficiencia>90%-95%</eficiencia>
<Descripcion>El agua es distribuida de manera localizada, por gotas, a traves de goteros instalados en mangueras de goteo.</Descripcion>
</tipo>
</SistemaRiego>

Esta es la primera pantalla que aparece al cargar el programa:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Luego debemos dar clic en «Abrir XML», se nos cargará la siguiente pantalla:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Luego al dar clic en «Seleccionar» nos cargará la ruta del archivo en un Label de la página principal:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Luego al dar clic en Ejecutar, el contenido del archivo XML nos cargará en el área de texto:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Ahora vamos a realizar una consulta XPath a ese archivo XML. Para ello escribimos la consulta donde dice «Expresión XPath» y damos clic en consultar para ver el resultado:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Ahora para agregar un dato al archivo XML damos clic en el botón «Agregar Dato»:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Si habilitamos la casilla «Agregar a la base» los datos se almacenarán simultáneamente en la base de datos de PostgreSQL y en el archivo XML. Para este caso lo haremos solo en el archivo XML. Llenamos los datos y damos clic en el botón «Agregar», un mensaje nos informará que los datos han sido agregados correctamente y volvemos a la pantalla inicial. Para ver los nuevos datos damos clic en «Ejecutar»:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Para eliminar un dato damos clic en «Eliminar dato» y aparece la siguiente pantalla:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Allí encontramos un combobox que contiene, en este caso, los tipos de riego y este dato lo obtiene del archivo XML, los carga desde ahí. No de la base de datos. Ahí al dar clic en «Eliminar» borrará el dato del archivo XML y si activamos la casilla lo borra también de la base de datos.

Finalmente tenemos la opción «Guardar en base». Esta opción es muy útil. Vamos a suponer que tenemos la base de datos vacía y el archivo XML ya lleno, y lo que queremos es llenar la base de datos con lo que tenemos en el archivo XML, entonces usamos esta opción:

Clic en la imagen para ampliar

Clic en la imagen para ampliar

Ahí existe un combobox que tiene los tipos de riego que obtiene desde el archivo XML, seleccionamos el que queremos y damos clic en «Cargar datos» y en los campos de texto aparece la información, al dar clic en «Grabar» todos los datos quedan almacenados en la base de datos de PostgreSQL.

El proyecto está compuesto por tres archivos .java.

  • Conexion.java

Por medio de este archivo podemos crear la conexión a la base de datos de ProgreSQL. Además podemos ejecutar consultas sql. Para este caso dentro de este archivo tenemos las siguientes líneas de código:

this.driver =»org.postgresql.Driver»;
this.user=»postgres«;
this.pwd=»1234″;
this.cadena=»jdbc:postgresql://localhost:5432/baseRiego«;
this.con=this.crearConexion();

En mi caso yo tengo el usuario postgres, la contraseña 1234 y mi base de datos se llama baseRiego.  Debes cambiar los datos en tu caso de ser necesario.

Para descargarte el código fuente del archivo Conexion.java da clic en el siguiente enlace: https://cyberexplorador.files.wordpress.com/2009/08/conexion.pdf

Recuerda que para que te funcione correctamente este archivo y no te de error debes tener el JDBC en el ClassPath como lo expliqué anteriormente.

  • Ejemplo1.java y EscogerArchivo.java

Estos dos archivos nos permiten manipular los archivos XML con Java usando el API JDOM. Recuerda descomprimir el archivo .zip del JDOM dentro del classpath del proyecto para que estos archivos no te den error alguno.

Para descargarte el código fuente del archivo Ejemplo1.java da clic en el siguiente enlace:

https://cyberexplorador.files.wordpress.com/2009/08/ejemplo1.pdf

Para descargarte el código fuente del archivo EscogerArchivo.java da clic en el siguiente enlace:

https://cyberexplorador.files.wordpress.com/2009/08/escogerarchivo.pdf

Finalmente para que te funcione la base de datos, debes crear en PostgreSQL usando pgAdmin una base llamada, en este caso, baseRiego y dentro de ella crea una tabla usando el siguiente cógigo SQL:

create table Riego(
id_riego text not null primary key,
aplicacion_riego text,
costo_inicial text,
consumo text,
eficiencia text,
descripcion text
);

Puedes probar el programa con el archivo XML llamado RiegoVale.xml, el código lo puse más arriba.

Por cierto para probar las consultas XPath en ese archivo puedes usar de ejemplo estas dos consultas:

SistemaRiego/tipo[@riego=»Inundacion»]/Aplicacion
SistemaRiego/tipo/Aplicacion

También puedes decargarte todo el programa completo para que lo abras con NetBeans. Ahí están incluidos el JDOM y el JDBC. Solo ejecútalo con NetBeans y te funcionará. El enlace es:

http://mygnet.net/codigos/java/documentosxml/manipular_archivos_xml_desde_java.3041

Aquí te dejo una página web muy útil donde tienes 5 ejemplos muy interesantes sobre lo que puedes hacer con JDOM:

http://cubo.uc3m.es/ttlsoc/p5/

Espero que haya sido útil el programa. Cualquier duda no olvides hacerla.

Ah por cierto antes que me olvide. Este programa fue un proyecto de la universidad y lo hicimos entre cuatro compañeros, y para que no digan que violo derechos de autor =) aquí dejo los nombres y los correos de quienes participamos:

Hugo Mora     ==> cyberexplorador.ec@gmail.com
Ángel Chiluisa  ==> angels77._mani@hotmail.com
Gabriel Reyes  ==> g_alejo06@hotmail.com
Pablo Yacelga  ==> yacemiller2324@hotmail.com

create table Riego(

id_riego text not null primary key,

aplicacion_riego text,

costo_inicial text,

consumo text,

eficiencia text,

descripcion text

);

Crea un blog o un sitio web gratuitos con WordPress.com.
Entries y comentarios feeds.