Ir al contenido principal

Procesando XML en Java [Xerces] - I

En este artículo utilizaré un pequeño ejemplo para explicar cómo manipular documentos XML usandoXERCES Java Parser. En este primer ejemplo usaré el API DOM, y la utilizaremos para generar un archivo XML y guardarlo en disco, y posteriormente procesaremos (parsearemos) dicho archivo para leer su información.

Nota: Sino tienes claro qué es un parser XML, qué es un API XML para Java y cuáles están disponibles, o aún tienes algunas dudas en relación con Java y XML, puedes/debes leer este pequeño artículo.

Generación de archivos XML usando Xerces

En esta ocasión utilizaremos el API DOM para generar un archivo XML, que guardará información acerca de un listado de descargas ficticio. Como resultado, nuestra aplicación generará el siguiente documento XML:

01xml version="1.0" encoding="ISO-8859-1"?>
02<Descargas>
03 <descarga id="1">
04 <titulo>Libros Javatitulo>
06 <hits>2546hits>
07 descarga>
08 <descarga id="2">
09 <titulo>Libros C Sharptitulo>
11 <hits>1654hits>
12 descarga>
13Descargas>

En el cual tenemos un elemento llamado descarga que contiene un atributo llamado id; además posee tres nodos hijos: titulo, ruta y hits. Teniendo en cuenta esto crearemos un pequeño bean (claseDescargas.java), que contiene dichos datos:

01public class Descargas {
02 //Variables
03 private int id;
04 private String titulo;
05 private String ruta;
06 private int hits;
07 //Constructor de la clase
08 public Descargas(int id, String titulo, String ruta, int hits){
09 this.id = id;
10 this.titulo = titulo;
11 this.ruta = ruta;
12 this.hits = hits;
13 }
14 //Metodos Setters y Getters
15 public void setID(int id) {
16 this.id = id;
17 }
18 public int getID() {
19 return this.id;
20 }
21 //etc... (AL FINAL DEL ARTÍCULO PUEDES DESCARGAR EL EJEMPLO COMPLETO)
22}

Más adelante utilizaremos la clase GenerarXML.java, quien se encargará de crear el archivo XML. De momento detallaremos los pasos básicos para realizar tareas de ese tipo:

  • Crear los objetos a cargar en el documento XML (en nuestro ejemplo, objetos tipo Descargas)
  • Crear un objeto Document que contendrá el documento XML
  • Generar los datos XML para los objetos creados en primer paso
  • Crear un archivo (o salida) XML

En nuestro ejemplo, la invocación a los métodos que realizan estas tareas se encuentra en el métodomain:

01public static void main(String args[])
02{
03 GenerarXML generador = new GenerarXML();
04 // A. Crear el objeto(s) a Descargas
05 Descargas descarga = new Descargas(1, "Libros Java","http://casidiablo.net/libros.zip", 2546);
06 Descargas descarga2 = new Descargas(2, "Libros C Sharp","http://casidiablo.net/libroscs.zip", 1654);
07 // B. Generar un documento XML usando Document
08 generador.generaDocumentoXML();
09 // C. Generar XML para el/los objeto(s)
10 generador.generarDocumentoXMLDescarga(descarga);
11 generador.generarDocumentoXMLDescarga(descarga2);
12 // D. Obtener el código XML
13 String textoXML = generador.obtenerTextoXML();
14 generador.guardarDocumentoXML(textoXML);
15 System.out.println(textoXML);
16}

Comentarios

  1. Hola interesante tu post, me gustaria saber como puedo serializar ese archivo xml para enviarlo por sockets

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Java POI HSSFCell : añadir comentario en una celda

POI HSSFComment: Una manera simple de añadir un comentario en una celda de excel usando el metodo cell.setCellComment(). public class ExcelTools { public static void main(String[] args){ //escribirExcel(); //leerExcel(); validarValoresDuplicadosLista(); System.out.println("Ejemplo Finalizado."); } public static void escribirExcel(){ try{ //Se crea el libro Excel HSSFWorkbook wb = new HSSFWorkbook(); //Se crea una nueva hoja dentro del libro HSSFSheet sheet = wb.createSheet("HojaEjemplo"); //Se crea una fila dentro de la hoja HSSFRow row = sheet.createRow((short)0); HSSFPatriarch patr = sheet.createDrawingPatriarch(); //Creamos celdas de varios tipos row.createCell((short)0).setCellValue(1); row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue("ejemplo&

Debugging Remoto con Eclipse + WebSphere 7 + Maven

Tienes proyectos java en Maven y no puedes ubicar bugs fácilmente a falta de junit. Sin embargo, existe la alternativa de debugear la aplicación web a través de Java Debugger (jdb). Aquí les muestro una guía de como hacer un debug remoto de la aplicación web en Eclipse y WebSphere 7 a través de Java Debugger (JDB). Eclipse <----> Java Debugger (jdb) <----> WebSphere 7 1. Habilitar el WebSphere en modo Debug. Para esto seguir los siguientes pasos:  1. Servers –> Server Types –> WebSphere application servers 2. Under Server Infrastructure section –> expandir Java and Process Management –> Process definition 3. dentro de la seccion Additional Properties –> click Java Virtual Machine 4. clic en el check “Debug Mode” 5. En texbox Debug arguments, poner este valor:  -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 6. Reiniciar el servidor WebSphere. Ahora, WebSphere se inicia en modo debug, y escuchando en el pu

DB2 Error SQL20054N

Ejecutando un alter table me da el  siguiente error: db2 "ALTER TABLE PRG_REC.ESTIMADO_OBJETIVO DROP COLUMN VTA_OBJ_CAMP_FALTA_EXTRANJERA"; Error:  [db2inst1@ibmdb2test]:/home/db2inst1/1223/REQ1223/rollback$ db2 "ALTER TABLE PRG_REC.ESTIMADO_OBJETIVO DROP COLUMN VTA_OBJ_CAMP_FALTA_EXTRANJERA"; DB21034E  The command was processed as an SQL statement because it was not a valid Command Line Processor command.  During SQL processing it returned: SQL20054N  The table "PRG_REC.ESTIMADO_OBJETIVO" is in an invalid state for the operation.  Reason code="23" .  SQLSTATE=55019 Segun IBM la descripcion del error: SQL20054N:  La tabla   nombre-tabla   está en un estado no válido para la operación. Código de razón= código-razón . 23 Se ha realizado el número máximo de modificaciones recomendadas de REORG. Se permite un máximo de tres modificaciones recomendadas de REORG en una tabla antes de que se deba realizar reorg, para actualizar las fila