Мне нужно сохранить один XmlDocument
в файл с правильным отступом (Formatting.Indented)
, но некоторые узлы со своими детьми должны быть в одной строке (Formatting.None)
.Как сохранить XmlDocument с несколькими настройками отступов?
Как достичь этого с XmlTextWriter
принять установку для целого документа?
Edit после resposne @Ahmad Mageed в:
Я не знал, что настройки XmlTextWriter могут быть изменены во время записи. Это хорошие новости.
Сейчас я экономлю XMLDOCUMENT (который уже заполнен с узлами, чтобы быть конкретным это .xaml страницы) таким образом:
XmlTextWriter writer = new XmlTextWriter(filePath, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
xmlDocument.WriteTo(writer);
writer.Flush();
writer.Close();
Это позволяет отступы во всех узлах, конечно. Мне нужно отключить отступы при работе со всеми узлами <Run>
.
В вашем примере вы пишете XmlTextWriter «вручную». Есть ли простой способ просканировать все узлы xmlDocument и записать их в XmlTextWriter, чтобы я мог обнаружить узлы <Run>
? Или мне нужно написать какой-то рекурсивный метод, который будет передаваться каждому дочернему узлу текущего узла?
@shg: Я видел ваш ответ. Является ли LINQ to XML опцией? Или строго .NET 2.0? BTW, вы должны отредактировать свой вопрос и опубликовать этот код здесь вместо того, чтобы публиковать его как ответ, чтобы все было в одном месте для других, потому что это дополнительная информация для вашего вопроса. Вы можете отредактировать это, а затем удалить другой пост. –
@Ahmad Mageed: Я никогда раньше не использовал LINQ to XML, но это вариант. Спасибо за подсказку. Я более подробно рассмотрю его. BTW Я сделал редактирование, которое вы предложили. Я новичок в публикации вопросов о stackoverflow, так что извините за беспорядок. – shg