Java – Crear Archivo XML

Es posible crear archivos XML con DOM, sin embargo es necesario crear el documento con la clase DocumentBuilder, para después crear cada elemento con la clase Element.  Finalmente usarás la clase Transformer para generar un archivo de texto con el contenido del XML.

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class CrearXml {

  public static void main(String argv[]) {
    try {
      DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

      //Elemento raíz
      Document doc = docBuilder.newDocument();
      Element rootElement = doc.createElement("root");
      doc.appendChild(rootElement);

      //Primer elemento
      Element elemento1 = doc.createElement("elemento1");
      rootElement.appendChild(elemento1);

      //Se agrega un atributo al nodo elemento y su valor
      Attr attr = doc.createAttribute("id");
      attr.setValue("valor del atributo");
      elemento1.setAttributeNode(attr);

      Element elemento2 = doc.createElement("elemento2");
      elemento2.setTextContent("Contenido del elemento 2");
      rootElement.appendChild(elemento2);

      //Se escribe el contenido del XML en un archivo
      TransformerFactory transformerFactory = TransformerFactory.newInstance();
      Transformer transformer = transformerFactory.newTransformer();
      DOMSource source = new DOMSource(doc);
      StreamResult result = new StreamResult(new File("/ruta/prueba.xml"));

      transformer.transform(source, result);

    } catch (ParserConfigurationException pce) {
      pce.printStackTrace();
    } catch (TransformerException tfe) {
      tfe.printStackTrace();
    }
  }
}




Aunque existen otras formas de crear un documento XML, esta es una de las más ampliamente usadas.
El resultado será un archivo XML como el siguiente:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
    <elemento1 id="valor del atributo"/>
    <elemento2>Contenido del elemento 2</elemento2>
</root>