<p>I have a Java String that contains XML, with no line feeds or indentations. I would like to turn it into a String with nicely formatted XML. How do I do this?</p>

<pre><code>String unformattedXml = "&lt;tag&gt;&lt;nested&gt;hello&lt;/nested&gt;&lt;/tag&gt;";
String formattedXml = new [UnknownClass]().format(unformattedXml);
</code></pre>

<p>Note: My input is a <strong>String</strong>. My output is a <strong>String</strong>. </p>

<p>(Basic) mock result:</p>



<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;root&gt;
  &lt;tag&gt;
    &lt;nested&gt;hello&lt;/nested&gt;
  &lt;/tag&gt;
&lt;/root&gt;
</code></pre>

```
```
Transformer transformer = TransformerFactory.newInstance().newTransformer();
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 = new DOMSource(doc);
transformer.transform(source, result);
String xmlString = result.getWriter().toString();
System.out.println(xmlString);
```
```
Note: Results may vary depending on the Java version. Search for workarounds specific to your platform.