У меня есть строка Java, которая содержит XML, без перевода строк или отступов. Я хотел бы превратить ее в строку с красиво отформатированным XML. Как мне это сделать?
String unformattedXml = "<tag><nested>hello</nested></tag>"; String formattedXml = new [UnknownClass]().format(unformattedXml);
Примечание: Мои входные данные представляют собой строку. Мои выходные данные представляют собой строку.
// Игнорировать: для первоначальной правки просто нужно было пропустить s в имени класса в коде. добавлены лишние шесть символов, чтобы получить проверку более 6 символов в SO
Ответ 3
Вот ответ на мой собственный вопрос. Я объединил ответы из различных результатов, чтобы написать класс, который красиво печатает XML.
Нет гарантий относительно того, как он реагирует на недопустимый XML или большие документы.
Сейчас 2012 год, и Java может делать с XML больше, чем раньше, я хотел бы добавить альтернативу моему принятому ответу. Это не имеет зависимостей за пределами Java 6.
writer.getDomConfig().setParameter("format-pretty-print", Boolean.TRUE); // Set this to true if the output needs to be beautified. writer.getDomConfig().setParameter("xml-declaration", keepDeclaration); // Set this to true if the declaration is needed to be outputted.