Crear un Documento XML con DOM en Java: Ejemplo Práctico Paso a Paso

Informática3,71 KB

Crear un documento XML con DOM en Java

// Paquetes necesarios para trabajar XML mediante DOM

import javax.xml.parsers.*;
import org.w3c.dom.*;

// Paquetes necesarios para guardar el árbol DOM que está en memoria en un fichero físico XML

import java.io.File;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

// Cargar excepciones necesarias

public class XML_FicheroNuevo {

private static DocumentBuilderFactory dbf;
private static DocumentBuilder db;
private static Document doc;
private static Element elementoRaiz;
private static Element elementoNuevo;
private static Transformer xformer;
private static Source source;
private static Result result;

public static void main(String[] args) {

// Cargo el Factory (entorno) de DOM

dbf = DocumentBuilderFactory.newInstance();

// Cargo el procesador DOM

try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
System.out.println("Error cargando procesador DOM");
e.printStackTrace();
}

/*
* Para crear un documento XML nuevo con su árbol DOM se hace a partir del DocumentBuilder.
* Para ello utilizamos el método newDocument().
*/

doc = db.newDocument();

/*
* Todo elemento nuevo en el árbol DOM se crea a partir del Document.
* Para ello utilizamos el método createElement(), que tiene como parámetro el nombre de la etiqueta XML.
*/

elementoRaiz = doc.createElement("alumnos");

/*
* El elemento raíz debe ser hijo del Document. Para indicar que una etiqueta es hija de otra utilizamos el método appendChild().
* En este caso no le añadimos ni texto ni atributos.
*/

doc.appendChild(elementoRaiz);

/* Vamos a crear otro elemento nuevo EN EL ÁRBOL DOM */

elementoNuevo = doc.createElement("alumno");

/*
* Le asignamos contenido, atributos, etc. al nuevo elemento. En nuestro caso le añadimos un texto y un atributo.
*/

elementoNuevo.setTextContent("Juan Sanchez");
elementoNuevo.setAttribute("nMatricula", "2000/1234");

/*
* Lo asignamos como hijo de otro elemento. En nuestro caso, será hijo del elemento raíz.
*/

elementoRaiz.appendChild(elementoNuevo);

/* Transformamos el árbol XML DOM que está en memoria en un fichero físico */

try {
xformer = TransformerFactory.newInstance().newTransformer();
} catch (TransformerConfigurationException | TransformerFactoryConfigurationError e) {
e.printStackTrace();
}

/*
* Propiedades del fichero XML de salida
*/

xformer.setOutputProperty(OutputKeys.METHOD, "xml");
xformer.setOutputProperty(OutputKeys.INDENT, "yes");

/* Definimos la entrada y la salida de la transformación */

source = new DOMSource(doc);
result = new StreamResult(new File("NUEVO.xml"));

/* Realizamos la transformación mediante el método transform() */

try {
xformer.transform(source, result);
} catch (TransformerException e) {
e.printStackTrace();
}

}

}

Descargar

PDF Word HTML