Skip to content

Instantly share code, notes, and snippets.

@jsjohnst
Created December 9, 2011 03:23
Show Gist options
  • Save jsjohnst/1450003 to your computer and use it in GitHub Desktop.
Save jsjohnst/1450003 to your computer and use it in GitHub Desktop.
The code needed to build an XML string properly in Java... Ugh!
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class XMLWriter {
public static void main (String args[]) {
new XMLWriter();
}
public XMLWriter() {
String comment = "This is my comment";
String title = "This is the title";
String url = "http://mysite.com";
String image = "http://mysite.com/image.png";
String visibility = "anyone";
try {
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("share");
doc.appendChild(root);
Element comment_node = doc.createElement("comment");
comment_node.appendChild(doc.createTextNode(comment));
root.appendChild(comment_node);
Element content_node = doc.createElement("content");
root.appendChild(content_node);
Element title_node = doc.createElement("title");
title_node.appendChild(doc.createTextNode(title));
content_node.appendChild(title_node);
Element url_node = doc.createElement("submitted-url");
url_node.appendChild(doc.createTextNode(url));
content_node.appendChild(url_node);
Element image_node = doc.createElement("submitted-image-url");
image_node.appendChild(doc.createTextNode(image));
content_node.appendChild(image_node);
Element visibility_node = doc.createElement("visibility");
root.appendChild(visibility_node);
Element code_node = doc.createElement("code");
code_node.appendChild(doc.createTextNode(visibility));
visibility_node.appendChild(code_node);
TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.INDENT, "yes");
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
String xmlString = sw.toString();
System.out.println("Here's the xml:\n\n" + xmlString);
} catch (Exception e) {
System.out.println(e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment