Formatting Unstructured XML Strings in Java
You have an XML string encoded as a Java String without any formatting, and you need to convert it into a String with proper indentation and line feeds.
To achieve this, you can utilize the Java Transformer class along with the OutputKeys and DOMSource classes.
First, create a new instance of the Transformer class:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Configure the Transformer to add indentation to the output:
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Now, initialize a StreamResult object to capture the transformed result as a String:
StreamResult result = new StreamResult(new StringWriter());
Create a DOMSource object from your XML string:
DOMSource source = new DOMSource(doc);
Finally, use the Transformer to transform the source XML into the desired formatted output:
transformer.transform(source, result); String xmlString = result.getWriter().toString();
After this transformation, the xmlString variable will contain the formatted XML. Here's an example:
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); StreamResult result = new StreamResult(new StringWriter()); DOMSource source = new DOMSource(doc); transformer.transform(source, result); String xmlString = result.getWriter().toString(); System.out.println(xmlString);
Output:
<?xml version="1.0" encoding="UTF-8"?> <root> <tag> <nested>hello</nested> </tag> </root>
The above is the detailed content of How to Format Unstructured XML Strings in Java?. For more information, please follow other related articles on the PHP Chinese website!