fork download
  1. import java.io.ByteArrayInputStream;
  2.  
  3. import javax.xml.parsers.DocumentBuilderFactory;
  4. import javax.xml.transform.OutputKeys;
  5. import javax.xml.transform.Transformer;
  6. import javax.xml.transform.TransformerFactory;
  7. import javax.xml.transform.dom.DOMSource;
  8. import javax.xml.transform.stream.StreamResult;
  9.  
  10. import org.w3c.dom.Document;
  11.  
  12. public class Main {
  13. public static void main(String[] args) {
  14. try {
  15. String input = "<asdf>\n\n<a>text</a></asdf>";
  16. Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(input.getBytes()));
  17.  
  18. System.out.println("-- input -------------------\n" + input + "\n----------------------------");
  19. System.out.println("-- output ------------------");
  20. prettify(doc);
  21. System.out.println("----------------------------");
  22.  
  23. } catch (Exception e) {}
  24. }
  25.  
  26. public static void prettify(Document doc) {
  27. try {
  28. TransformerFactory transformerFactory = TransformerFactory.newInstance();
  29. Transformer transformer = transformerFactory.newTransformer();
  30. transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
  31. transformer.setOutputProperty(OutputKeys.METHOD, "xml");
  32. transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  33. transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  34. transformer.setOutputProperty("{http://x...content-available-to-author-only...e.org/xslt}indent-amount", "2");
  35. transformer.transform(new DOMSource(doc), new StreamResult(System.out));
  36. } catch (Exception e) {}
  37. }
  38. }
  39.  
Success #stdin #stdout 0.09s 246144KB
stdin
Standard input is empty
stdout
-- input -------------------
<asdf>

<a>text</a></asdf>
----------------------------
-- output ------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<asdf>

<a>text</a>
</asdf>
----------------------------