Запись XMLDocument в файл с определенным символом новой строки (c #)

У меня есть XMLDocument, который я прочитал из файла. Это файл Unicode с символом новой строки '\ n'. Когда я записываю XMLDocument обратно, в нем есть символы новой строки '\ r \ n'.

Вот код, довольно простой:

XmlTextWriter writer = new XmlTextWriter(indexFile + ".tmp", System.Text.UnicodeEncoding.Unicode);
writer.Formatting = Formatting.Indented;

doc.WriteTo(writer);
writer.Close();

XmlWriterSettings имеет свойство NewLineChars, но я не могу указать параметр настроек для «писателя», он доступен только для чтения.

Я могу создать XmlWriter с указанным свойством XmlWriterSettings, но XmlWriter не имеет свойства форматирования, в результате чего получается файл без разрывов строк.

Итак, вкратце, мне нужно написать файл Unicode Xml с символом новой строки '\ n' и Formatting.Indented. Мысли?


person jaws    schedule 23.04.2010    source источник
comment
см. также: stackoverflow.com/questions/3415294/ (что относится к ответу здесь)   -  person Michael Paulukonis    schedule 06.10.2011


Ответы (2)



Используйте XmlWriter.Create (), чтобы создать средство записи и указать формат. Это хорошо сработало:

using System;
using System.Xml;

class Program {
    static void Main(string[] args) {
        XmlWriterSettings settings = new XmlWriterSettings();
        settings.NewLineChars = "\n";
        settings.Indent = true;
        XmlWriter writer = XmlWriter.Create(@"c:\temp\test.xml", settings);
        XmlDocument doc = new XmlDocument();
        doc.InnerXml = "<root><element>value</element></root>";
        doc.WriteTo(writer);
        writer.Close();
    }
}
person Hans Passant    schedule 23.04.2010