Использование XmlTextWriter для записи значения с новой строкой (сохраняйте правильный отступ) в С#

то, что я хочу, это так:

  <a>
    <b>
      <c>
        value
      </c>
    </b>
  </a>

Я пробовал: WriteValue()/WriteString() не будет начинать новую строку: "<c>value</c>" WriteWhitespace(Environment.NewLine) не сохранит отступ:

  <a>
    <b>
      <c>
  value
  </c>
    </b>
  </a>

По какой-то причине я должен использовать XmlTextWriter.


person Crazyisgift    schedule 04.09.2014    source источник
comment
Попробуйте свойства, author.Formatting = Formatting.Indented; писатель.Отступ = 4;   -  person jac    schedule 04.09.2014
comment
вы можете неправильно понять, я уже использовал форматирование, поэтому abc сохранит отступ, но когда я хочу добавить значение в новую строку, значение не может.   -  person Crazyisgift    schedule 04.09.2014


Ответы (2)


Вы должны использовать XmlWriterSettings. посмотреть пример кода

XmlWriterSettings settings = new XmlWriterSettings();
        settings.Indent = true;
        settings.IndentChars = "\t";
        XmlWriter writer = XmlWriter.Create(@"sample.xml", settings);
        writer.WriteStartElement("a");
        writer.WriteStartElement("b");
        writer.WriteStartElement("c");
        writer.WriteValue("value");
        writer.WriteEndElement();
        writer.WriteEndElement();
        writer.WriteEndElement();
        writer.Close();
person Seminda    schedule 04.09.2014
comment
спасибо, но извините, я должен использовать XmlTextWriter для записи сегментов XML, которые не могут использовать настройки. Есть ли решение для XmlTextWriter? - person Crazyisgift; 04.09.2014
comment
Если вы можете опубликовать свой пример кода, который поможет проверить - person Seminda; 04.09.2014

Для этого вы можете реализовать небольшой пользовательский модуль записи. Смотрите мой ответ здесь: https://stackoverflow.com/a/33542165/5114784

person György Kőszeg    schedule 05.11.2015