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!!!
A veces navegando en la internet buscando novedades , investigando o simplemente perdiendo el tiempo 🙂 se encuentran cos[...]
Hace tiempo pidieron un video tutorial sobre como crear sus propios componentes swing java, lamentablemente debo decir q[...]
Google tiene entre su formulario de autenticación de usuario para sus diferentes servicios (gmail, blogger, youtube, g+)[...]
En esta ocasión vemos un ejemplo sencillo de como usar Tile Map en nuestros juegos android con la librería LibGDX utiliz[...]
Launch4j es un software OpenSource hecho en Java que permite crear ejecutables para programas escritos en ese mismo leng[...]
OS.js a pesar de lo que sugiere su nombre, no es en si un Sistema Operativo, es más, en su web oficial no se nombra por[...]