How Do I Create Standards Compliant HTML in Java?
April 3rd, 2009 — alexThis is a common question and the answers out there are pretty sketchy. So I’m going to provide my example code:
package demo;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
public class HTMLDemo {
public static void main(String[] args) {
FileOutputStream outputStream = null;
try {
Document newDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element html = newDocument.createElement("html");
Element head = newDocument.createElement("head");
Element body = newDocument.createElement("body");
Element p = newDocument.createElement("p");
Text textNode = newDocument.createTextNode("Hello World");
p.appendChild(textNode);
body.appendChild(p);
html.appendChild(head);
html.appendChild(body);
newDocument.appendChild(html);
outputStream = new FileOutputStream("/demo.html");
TransformerFactory.newInstance().newTransformer().transform(
new DOMSource(newDocument), new StreamResult(outputStream));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
I leave things like doctype as an exercise to the reader.