Creating XML only printing to one line
11,757
I use
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.setOutputProperty(OutputKeys.METHOD, "xml");
tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
Which seems to work just fine.
Author by
meriley
Updated on July 29, 2022Comments
-
meriley over 1 year
I created some code that writes a map to XML. It appears to be working but the file is printed with no new lines. So in any XML editor its only on one line. How can I have it print to a new line for each child?
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.newDocument(); Element vdata = doc.createElement("vouchdata"); doc.appendChild(vdata); for (Entry<String, String> entry : vouchMap.entrySet()) { Element udata = doc.createElement("vouch"); Attr vouchee = doc.createAttribute("name"); vouchee.setValue(entry.getKey()); udata.setAttributeNode(vouchee); Attr voucher = doc.createAttribute("vouchedBy"); voucher.setValue(entry.getValue()); udata.setAttributeNode(voucher); vdata.appendChild(udata); } // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("vouchdata.xml")); // Output to console for testing // StreamResult result = new StreamResult(System.out); transformer.transform(source, result);
-
MadProgrammer almost 10 years@Tony This little hack to me weeks for Googling and trial and error. Glad I saved you the hasel ;)
-
qraqatit almost 4 yearsPerfect: it helped me so much after half a day trying to find out what is wrong with my XML output (long one line only) - this solved it, upvoted!