Отформатируйте вывод XML с помощью конфигурации Apache Commons XMLConfiguration - PullRequest
6 голосов
/ 23 апреля 2011

Я использую конфигурацию Apache Commons XMLConfiguration для создания и сохранения файла XML. При сохранении нет форматирования. Я получаю что-то вроде:

<root>
<node>
<child>
</child>
</node>
</root>

Я знаю, что есть много способов использовать какую-то другую библиотеку для получения этого вывода и его форматирования, но наверняка должен быть способ установить что-то столь же простое, как отступ в конфигурации общего достояния?

Ответы [ 2 ]

10 голосов
/ 25 апреля 2013

Обнаружена та же проблема.Хотя вопрос задавался давно, хотелось бы поделиться решением:

Класс XMLConfiguration имеет защищенный метод с именем createTransformed.Это должно быть расширено и установлено правильная конфигурация для отступа.

public class ExtendedXMLConfiguration extends XMLConfiguration
{
    public ExtendedXMLConfiguration(File file) throws ConfigurationException
    {
        super(file);
    }

    @Override
    protected Transformer createTransformer() throws TransformerException {
        Transformer transformer = super.createTransformer();
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
        return transformer;
    }
}
0 голосов
/ 23 апреля 2011

Вы можете сослаться на этой темы , которая предоставляет множество простых способов работы с форматом xml в Java.

...