package org.opendedup.util; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Comment; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; public class DomXmlExample { /** * Our goal is to create a DOM XML tree and then print the XML. */ public static void main(String args[]) { new DomXmlExample(); } public DomXmlExample() { try { // /////////////////////////// // Creating an empty XML Document // We need a Document DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbfac.newDocumentBuilder(); Document doc = docBuilder.newDocument(); // ////////////////////// // Creating the XML tree // create the root element and add it to the document Element root = doc.createElement("root"); doc.appendChild(root); // create a comment and put it in the root element Comment comment = doc.createComment("Just a thought"); root.appendChild(comment); // create child element, add an attribute, and add to root Element child = doc.createElement("child"); child.setAttribute("name", "value"); root.appendChild(child); // add a text element to the child Text text = doc .createTextNode("Filler, ... I could have had a foo!"); child.appendChild(text); // /////////////// // Output the XML // set up a transformer TransformerFactory transfac = TransformerFactory.newInstance(); Transformer trans = transfac.newTransformer(); trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); trans.setOutputProperty(OutputKeys.INDENT, "yes"); // create string from xml tree StringWriter sw = new StringWriter(); StreamResult result = new StreamResult(sw); DOMSource source = new DOMSource(doc); trans.transform(source, result); String xmlString = sw.toString(); // print xml System.out.println("Here's the xml:\n\n" + xmlString); } catch (Exception e) { System.out.println(e); } } }