Inicio > Java, Programación > Crear un árbol HTML en Java usando el API DOM

Crear un árbol HTML en Java usando el API DOM

Domingo, 31 de Mayo de 2009

En los post anteriores vimos  cómo descargar una página HTML desde la web a nuestor disco duro, o mantenerla en memoria almacenada en un String.

En este y en los próximos post vamos  a ver  ejemplos de uso y manipulación de un árbol HTML/XML en Java, mediante la interfaz de programación DOM (Document Object Model).

El uso del DOM es moneda corriente en los navegadores mediante JavaScript, pero a veces se desconoce la posibilidad de usarlo en aplicaciones Java.

Hoy veremos cómo crear un árbol HTML, que se engloba dentro de la clase Document, a partir de un fichero HTML y cómo guardarlo.

/**
 * Método que recibe un archivo de texto xml, y lo almacena en un Document
 * @param filename Archivo a leer
 * @return Document Con la estructura de árbol DOM del fichero XML/HTML.
 */

public static Document readFile(String filename) {
        try {
                //Obtenemos la factoría de contrustores de documentos
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                //Obtenemos un nuevo contructor y le ordenamos que analice el fichero deseado
                Document doc = factory.newDocumentBuilder().parse(new File(filename));
                return doc;
        } catch (java.lang.Exception e) {
        }
        return null;
}

/**
 * Método que recibe un Document con la esctructura de un archivo XML/HTML y una
 * ruta en donde guardarlo. Y almacena la estructura XML/HTML en el archivo dado.
 *
 * @param doc Árbol DOM con la estructura XML/HTML
 * @param filemane Ruta del archivo en donde se guardará
 */

private static boolean writeFile(Document doc, String filename) {
        try {
                Source source = new DOMSource(doc);
                File file = new File(filename);
                Result result = new StreamResult(file);
                Transformer xformer = TransformerFactory.newInstance().newTransformer();
                xformer.transform(source, result);
                return true;
        } catch (java.lang.Exception e) {
        }
        return false;
}

Clase de I/O para DOM

En este fichero se encuentran las 2 funciones, metidas en una clase con todos los import que hacen falta. [link]

peter Java, Programación , , ,

  1. Viernes, 19 de Junio de 2009 a las 13:50 | #1

    Enhorabuena por la web!,, los ejemplos son muy útiles!!!

  2. Domingo, 28 de Junio de 2009 a las 20:24 | #2

    A ver si escribes mas peter!!!

  3. krokiman
    Viernes, 5 de Febrero de 2010 a las 21:04 | #3

    Gracias! algo así estaba buscando

  1. Sin trackbacks aún.