Я хотел бы сериализовать некоторую простую модель данных в xml, я использую стандартный код, связанный с java.org.w3c (см. Ниже), отступ лучше, чем никакого «OutputKeys.INDENT», но там остается одна маленькая вещь - правильное отступление для дочерних элементов.
Я знаю, что это спрашивалось раньше в stackoverflow , но эта конфигурация у меня не сработала, вот код, который я использую:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
doc = addItemsToDocument(doc);
// The addItemsToDocument method adds childElements to the document.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setAttribute("indent-number", new Integer(4));
// switching to setAttribute("indent-number", 4); doesn't help
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(outFile);
// outFile is a regular File outFile = new File("some/path/foo.xml");
transformer.transform(source, result);
Полученная продукция:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<stuffcontainer>
<stuff description="something" duration="240" title="abc">
<otherstuff />
</stuff>
</stuffcontainer>
Принимая во внимание, что я хотел бы это (для большей ясности) как:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<stuffcontainer>
<stuff description="something" duration="240" title="abc">
<otherstuff />
</stuff>
</stuffcontainer>
Мне просто интересно, есть ли способ сделать это, сделать его соответствующим образом с отступом для дочерних элементов.
Заранее спасибо!
Счастливой Пасхи кодирование :-)!