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!!!
En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic d[...]
En este post haremos uso de PanoramaImageView para agregar a una aplicación android, una vista panorámica de 180° y 360°[...]
EL patrón MVC (Model, View, Controller) o Modelo, Vista Controlador, es un tipo de diseño que separa en capas bien defin[...]
Semanas atrás leí un articulo en el que se pensaba implementar los emojis como contraseñas en los dispositivos con andro[...]
En post anteriores vimos lo que son los procedimientos almacenados y como llamarlos desde java, en este post veremos lo[...]
Desde que se crearon los videojuegos para computadora, el espacio de almacenamiento y memoria han sido siempre un proble[...]