JDom: как читать / писать XML без изменения начального представления - PullRequest
0 голосов
/ 22 марта 2019

У меня есть 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);

После этого мой файл выглядит не так, как я хочу:

  1. Заголовок изменен (<?xml version="1.0" encoding="UTF-8"?> вместо <?xml version="1.0" encoding="UTF-8" standalone="yes"?>)
  2. <tag1> </tag1> каким-то образом заменен на <tag1 />, что определенно неверно, поскольку у tag1 есть один пробел, который был заменен на пустую строку.Это действительно плохо.
  3. Количество отступов уменьшилось.В моем исходном файле было 4 отступа, теперь в новом файле 2 отступа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...