Java tutorial
//package com.java2s; import org.w3c.dom.Document; import org.xml.sax.InputSource; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.*; public class Main { public static String prettifyXmlString(String uglyXml) { Transformer transformer = null; try { transformer = TransformerFactory.newInstance().newTransformer(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); //initialize StreamResult with File object to save to file StreamResult result = new StreamResult(new StringWriter()); DOMSource source = null; try { source = new DOMSource(string2Document(uglyXml)); } catch (Exception e) { e.printStackTrace(); } try { transformer.transform(source, result); } catch (TransformerException e) { e.printStackTrace(); } String xmlString = result.getWriter().toString(); return xmlString; } public static Document string2Document(String xml) throws Exception { InputSource src = new InputSource(new StringReader(xml)); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); dbFactory.setNamespaceAware(true); return dbFactory.newDocumentBuilder().parse(src); } }