У меня есть XML-файл:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<someRootTag>
<tag1> </tag1>
</someRootTag>
Мне нужно добавить / удалить некоторые узлы во время выполнения.Это не проблема.Но проблема в том, что я не хочу менять его представление.Теперь у меня есть следующий код для чтения / записи документа:
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)));
// some logic
XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());
String newXml = xmlOutputter.outputString(document);
После этого мой файл выглядит не так, как я хочу:
- Заголовок изменен (
<?xml version="1.0" encoding="UTF-8"?>
вместо <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
) <tag1> </tag1>
каким-то образом заменен на <tag1 />
, что определенно неверно, поскольку у tag1 есть один пробел, который был заменен на пустую строку.Это действительно плохо. - Количество отступов уменьшилось.В моем исходном файле было 4 отступа, теперь в новом файле 2 отступа.
Я думаю, мне нужно как-то прочитать метаданные из файла и применить к выходному устройству, но я понятия не имею,как этого добиться.