DOM4J es una de las librerías para java más populares para el trabajo con XML ya que nos permite crea, editar y leer documentos XML.
La ultima versión a la fecha es 2.1.1 para java 8 y superior, puedes descargar la librería desde su sitio web dom4j.github.io, ademas para este post, también necesitamos la librería JAXEN.
Entre las clases más importante de DOM4J tenemos:
La siguiente clase te permite crear un documento XML, guardarlo en disco y también leerlo:
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * @see https://www.jc-mouse.net * @author mouse */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { Document doc = crearXML(); escribirArchivoXML(doc, OutputFormat.createPrettyPrint(), "E:\\tmp\\productos.xml"); leerArchivoXML("E:\\tmp\\productos.xml"); } public static Document crearXML() { Document document = DocumentHelper.createDocument(); Element root = document.addElement("ListaProductos") .addAttribute("Titulo", "Productos de Invierno"); root.addComment("Producto #1"); Element p1Element = root .addElement("Producto"); p1Element .addElement("Nombre") .addText("Paraguas"); p1Element .addElement("Descripcion") .addText("Made in China"); p1Element .addElement("Precio") .addAttribute("Moneda", "Bs") .addText("100"); root.addComment("Producto #2"); Element p2Element = root .addElement("Producto"); p2Element .addElement("Nombre") .addText("Guantes de lana"); p2Element .addElement("Descripcion") .addText("Lana de alpaca"); p2Element .addElement("Precio") .addAttribute("Moneda", "Bs") .addText("45"); return document; } /** * @param document * @param format OutputFormat.createPrettyPrint() * OutputFormat.createCompactFormat() * @param dir */ public static void escribirArchivoXML(Document document, OutputFormat format, String dir) { try (FileWriter fileWriter = new FileWriter(dir)) { XMLWriter writer = new XMLWriter(fileWriter, format); writer.write(document); writer.close(); } catch (IOException ex) { System.err.println("IOException :" + ex.getMessage()); } } /** * @param dir Direccion del archivo XML a leer */ public static void leerArchivoXML(String dir) { Document document = abrirDocumento(dir); if (document != null) { Element rootElement = document.getRootElement(); System.out.println(rootElement.attributeValue("Titulo")); Iterator itr = rootElement.elementIterator(); for (Iterator<Element> it = itr; it.hasNext();) { Element element = it.next(); System.out.println("|-" + element.getName()); System.out.println(" |-- Nombre : " + element.selectSingleNode("Nombre").getText()); System.out.println(" |-- Descripcion : " + element.selectSingleNode("Descripcion").getText()); System.out.println(" |-- Precio : " + element.selectSingleNode("Precio").getText() + " " + ((Element) element.selectSingleNode("Precio")).attributeValue("Moneda")); } } } /** * @param dir Direccion del archivo XML a leer * @return Document */ public static Document abrirDocumento(String dir) { try { File inputFile = new File(dir); SAXReader reader = new SAXReader(); return reader.read(inputFile); } catch (DocumentException e) { System.err.println("DocumentException: " + e.getMessage()); } return null; } }
El código en si que crea el documento XML se encuentra en el método crearXML(), se podrá observa lo intuitivo que es su implementación gracias a la librería JDOM4J, a continuación podremos ver que parte del código java genera que etiqueta XML:
Ejecutando el programa, podremos obtener el siguiente archivo XML
Y cuando leemos este archivo obtenemos por consola lo siguiente:
enjoy!!!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Cuando se trabaja con base de datos, estos datos son dinámicos, cambian con el tiempo y es necesario que esos cambios se...
En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic d...
EL patrón MVC (Model, View, Controller) o Modelo, Vista Controlador, es un tipo de diseño que separa en capas bien defin...
Java nos permite pasar parámetros a una aplicación empaquetada en un *.JAR mediante el MAIN de nuestro programa, pero cl...
La Inteligencia Artificial (AI – Artificial Intelligence) estará presente en casi cada aspecto de nuestra vida en...
Continuando con los tutoriales sobre LibGDX (Librería para el desarrollo de videojuegos), en esta ocasión veremos como e...
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...