Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在使用XStreamingElement编写大型XML文件时,是否可以声明字符编码?_.net_Xml - Fatal编程技术网

.net 在使用XStreamingElement编写大型XML文件时,是否可以声明字符编码?

.net 在使用XStreamingElement编写大型XML文件时,是否可以声明字符编码?,.net,xml,.net,Xml,我使用XDocument和XElement对象来编写一个大型XML文件(目前为8MB)。我想切换到XStreamingElement,这样我就可以在不同时将所有数据存储在内存中的情况下编写文件。不幸的是,我需要包含一个编码声明。不使用XDocument,我可以这样做吗?诀窍是在创建XmlWriter时使用XmlWriterSettings来指定编码。它自动生成声明 var doc = new XStreamingElement("openerp", LoadReferen

我使用XDocument和XElement对象来编写一个大型XML文件(目前为8MB)。我想切换到XStreamingElement,这样我就可以在不同时将所有数据存储在内存中的情况下编写文件。不幸的是,我需要包含一个编码声明。不使用XDocument,我可以这样做吗?

诀窍是在创建XmlWriter时使用XmlWriterSettings来指定编码。它自动生成声明

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