import java.io.File; import java.util.HashMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public class XmlWriter { public static void main(String[] args) { try { //Sample Data (countries and capitals) HashMap data = new HashMap(); data.put("Egypt", "Cairo"); data.put("Finland", "Helsinki"); data.put("Japan", "Tokyo"); //Create DOM (with top-level node) DocumentBuilder xmlBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document xmlDoc = xmlBuilder.newDocument(); Node node = xmlDoc.createElement("countries"); xmlDoc.appendChild(node); //top-level node //Add Data to DOM for (String key : data.keySet()) { Element elem = xmlDoc.createElement("country"); elem.setAttribute("capital", data.get(key)); //attrib elem.appendChild(xmlDoc.createTextNode(key)); //content node.appendChild(elem); } //Write DOM to XML file Source source = new DOMSource(xmlDoc); Result result = new StreamResult(new File("countries.xml")); Transformer xformer = TransformerFactory.newInstance().newTransformer(); xformer.setOutputProperty(OutputKeys.INDENT, "yes"); xformer.transform(source, result); } catch (Exception e) { System.out.println(e.getMessage()); } } }