Форматирование XMLWriter при добавлении к существующему XML

У меня есть существующий файл XML. Новый контент добавляется в него через XmlWriter (или же XmlTextWriter, не имеет значения, который, так как оба демонстрируют одинаковое поведение).

Эта проблема:
Новый контент не отформатирован с отступом.

Пример вывода по XmlWriter с Indent=true а также IndentChars установить в пространство:

<?xml version="1.0"?>
<RootContext Type="ETSP">
<Root><Element1>1</Element1><Element2>2</Element2><Element3>3</Element3><Element4>4</Element4><Element5>5</Element5></Root></RootContext>

Использование этого примера кода для создания дополнительного содержимого XML, добавление его к существующему XML (<RootContext Type="ETSP"> ...):

        XElement srcTree = new XElement("Root",
            new XElement("Element1", 1),
            new XElement("Element2", 2),
            new XElement("Element3", 3),
            new XElement("Element4", 4),
            new XElement("Element5", 5));

Существующий XML, к которому я добавляю, читается через XmlTextReader/XElement.Load(),

Теперь: это происходит при создании нового XML - с использованием тех же настроек - содержащего только сгенерированный фрагмент сверху:

<?xml version="1.0"?>
<Root>
   <Element1>1</Element1>
   <Element2>2</Element2>
   <Element3>3</Element3>
   <Element4>4</Element4>
   <Element5>5</Element5>
</Root>

Отлично. Правильно отступ, форматирование - как раз то, что я хочу.

Теперь - как я могу получить форматирование с отступом при добавлении к существующему контенту XML?

1 ответ

Решение

FWIW - используя подход, предложенный Джоном Сондерсом и собираясь XDocument работает просто отлично.

Новый контент добавляется к существующему документу с желаемым форматированием.

Другие вопросы по тегам