Могу ли я объявить кодировку символов при использовании XStreamingElement для записи большого файла XML? - PullRequest
1 голос
/ 11 ноября 2009

Я использую объекты XDocument и XElement для записи большого файла XML (в настоящее время 8 МБ) Я хотел бы переключиться на XStreamingElement, чтобы я мог записать файл без одновременного хранения всех данных. К сожалению, мне нужно включить объявление кодировки. Могу ли я сделать это без использования XDocument?

1 Ответ

3 голосов
/ 11 ноября 2009

Хитрость заключается в том, чтобы использовать XmlWriterSettings для указания кодировки при создании XmlWriter. Создает объявление автоматически.

var doc =
    new XStreamingElement("openerp",
        LoadReferenceData(),
        LoadAccounts(),
        LoadPartners(),
        LoadComponents());
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.GetEncoding("latin1");
using (var writer = XmlWriter.Create(
    outputFilename.Text,
    settings))
{
    doc.WriteTo(writer);
}

Каждый из методов Load возвращает IEnumerable и использует yield return для генерации XML при циклическом просмотре результата запроса к базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...