2010-02-12 4 views
3

В C# мне нужно создать файлы XML для использования с Ivy и NAnt, но мне трудно получить правильную кодировку в выходном файле ,Сохранение файла Linq в Xml как ANSI вместо UTF-8 в C# (Ivy)

Если я использую .save XElement (в «C: \ foo.xml»), я получаю правильный глядя файл, но Айви и/или NAnt расстраивается, так как файл фактически сохраняется с использованием UTF-8, но Мне действительно нужно сохранить его как ANSI, чтобы иметь возможность использовать его.

В настоящее время у меня есть привязка, которая должна использовать .ToString() для получения текста, а затем использовать StreamWriter для записи в файл.

В идеале, я хотел бы установить формат во время .Save(), но не могу найти никакой информации об этом.

Спасибо.

ответ

10

XDocument.Save имеет множество перегрузок.

Запись через правильно построенный XmlWriter позволяет нам выбрать кодировку ASCII.

var doc = XDocument.Parse("<foo>&#160;bar&#7800;baz</foo>"); 

XmlWriterSettings settings = new XmlWriterSettings(); 
settings.Encoding = new ASCIIEncoding(); 
using (var writer = XmlWriter.Create("xelement.xml", settings)) { 
    doc.Save(writer); 
} 
+0

Хорошо, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^