Вопрос

В C # мне нужно создать XML-файлы для использования с Ivy и NAnt, но у меня возникают трудности с получением правильной кодировки в выходном файле.

Если я использую xelement's .Save("C:\foo.xml"), я получаю правильное глядя файл, но Ivy и / или NAnt расстраиваются, так как файл фактически сохранен с использованием UTF-8, но мне на самом деле нужно сохранить его как ANSI, чтобы иметь возможность его использовать.

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

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

Спасибо.

Это было полезно?

Решение

XDocument.Сохранить имеет ряд перегрузок.

Запись с помощью правильно сконструированного 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 );
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top