Форматирование 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
работает просто отлично.
Новый контент добавляется к существующему документу с желаемым форматированием.