Java tutorial
//package com.java2s; import org.w3c.dom.Document; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.ByteArrayOutputStream; import java.nio.charset.StandardCharsets; public class Main { private static final ThreadLocal<Transformer> TRANSFORMER = new ThreadLocal<Transformer>() { @Override protected Transformer initialValue() { try { return TransformerFactory.newInstance().newTransformer(); } catch (TransformerConfigurationException e) { throw new RuntimeException("Error while creating transformer", e); } } }; public static String format(Document document) throws TransformerException { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final Transformer transformer = TRANSFORMER.get(); transformer.transform(new DOMSource(document), new StreamResult(out)); transformer.reset(); return new String(out.toByteArray(), StandardCharsets.UTF_8); } }