--- /dev/null
+package org.argeo.slc.core.xml;\r
+\r
+import java.io.IOException;\r
+import java.io.StringWriter;\r
+\r
+import javax.xml.transform.OutputKeys;\r
+import javax.xml.transform.Transformer;\r
+import javax.xml.transform.TransformerConfigurationException;\r
+import javax.xml.transform.TransformerException;\r
+import javax.xml.transform.TransformerFactory;\r
+import javax.xml.transform.dom.DOMSource;\r
+import javax.xml.transform.stream.StreamResult;\r
+\r
+import org.w3c.dom.Document;\r
+\r
+import org.apache.commons.io.IOUtils;\r
+\r
+public class XmlUtils {\r
+ private static TransformerFactory transformerFactory = TransformerFactory\r
+ .newInstance();\r
+\r
+ public static String getDomAsString(Document doc, boolean indent)\r
+ throws IOException, TransformerConfigurationException,\r
+ TransformerException {\r
+ StringWriter out = new StringWriter();\r
+ try {\r
+ // Create identity transformer\r
+ Transformer transformer = transformerFactory.newTransformer();\r
+ if (indent) {\r
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");\r
+ }\r
+ DOMSource source = new DOMSource(doc);\r
+ StreamResult result = new StreamResult(out);\r
+ transformer.transform(source, result);\r
+ return out.toString();\r
+ } finally {\r
+ IOUtils.closeQuietly(out);\r
+ }\r
+ }\r
+}\r