JDOM
De Wikipedia, la enciclopedia libre
JDOM son las siglas en inglés de Java Document Object Model (Documento de Modelado de Objetos en Java) es una librería de código fuente para manipulaciones de datos XML optimizados para Java. A pesar de su similitud con DOM del consorcio World Wide Web (W3C), es una alternativa como documento para modelado de objetos que no está incluido en DOM. La principal diferencia es que mientras que DOM fue creado para ser un lenguaje neutral e inicialmente usado para manipulación de páginas HTML con JavaScript, JDOM se creó específicamente para usarse con Java y por lo tanto beneficiarse de las características de Java, incluyendo sobrecarga de métodos, colecciones, etc. Para los programadores de Java, JDOM es una extensión más natural y correcta. Se asemeja a como la librería RMI optimizada para Java (invocación remota de métodos) se amolda mejor que el CORBA (arquitectura de intermediario solicitador de objetos comunes) que es más neutral respecto a los lenguajes.
[editar] Ejemplos
Supongamos que el archivo "foo.xml" es el siguiente:
<tienda nombre="tienda para geeks" ubicacion="Tokio, Japon">
<computadora nombre="iBook" precio="$1200" />
<historieta nombre="Dragon Ball Volumen 1" precio="$9" />
<nivel_geek_de_la_tienda precio="sin precio" />
</tienda>
Es posible parsear el documento XML en un árbol de objetos Javas con JDom:
SAXBuilder builder = new SAXBuilder ();
Document doc = builder.build (new FileInputStream ("foo.xml"));
Element root = doc.getRootElement ();
root.getName (); // devuelve "tienda"
root.getAttributeValue ("nombre"); // devuelve "tienda para geeks"
root.getAttributeValue ("ubicacion"); // devuelve "Tokio, Japon"
root.getChildren (); // devuelve una java.util.List de objetos que tiene tres Element
También es posible realizar el proceso inverso, es decir construir un árbol de elementos y luego crear un archivo XML:
Element root = new Element ("tienda"); root.setAttribute ("nombre", "tienda para geeks"); root.setAttribute ("ubicación", "Tokio, Japon"); Element item1 = new Element ("computadora"); item1.setAttribute ("nombre", "iBook"); item1.setAttribute ("precio", "$1200"); root.addContent (item1); // Realizamos lo mismo con los elementos restantes XMLOutputter outputter = new XMLOutputter ("",true); try{outputter.output (new Document(root),new FileOutputStream ("foo2.xml")); } catch (Exception e){ e.getMessage(); }
[editar] Enlaces externos
- JDOM (en inglés)