DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); DOMImplementation dom = builder.getDOMImplementation(); //Creo un documento XML y creo el nodo raiz "productos" Document documento = dom.createDocument(null, "xml", null); Element raiz = documento.createElement("productos"); documento.getDocumentElement().appendChild(raiz); Element nodoProducto = null; Element nodoDatos = null ; Text texto = null; //Recorro la lista de productos y creo un subnodo producto por cada elemento for (Producto producto : listaProductos) { nodoProducto = documento.createElement("producto"); raiz.appendChild(nodoProducto); //Por cada dato de cada producto creo un nuevo subnodo nodoDatos = documento.createElement("nombre"); nodoProducto.appendChild(nodoDatos); texto = documento.createTextNode(producto.getNombre()); nodoDatos.appendChild(texto); nodoDatos = documento.createElement("precio"); nodoProducto.appendChild(nodoDatos); texto = documento.createTextNode(producto.getPrecio()); nodoDatos.appendChild(texto); } //Finalizo el documento xml y lo guardo en un fichero de texto Source src = new DOMSource(documento); Result resultado = new StreamResult(new File("fichero.xml")); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(src, resultado);