在C#中使用XMLWriter创建大型xml

wiz*_*rdz 2 c# xml

我试图使用XMLWriter创建一个包含大数据的xml,该函数执行时没有任何异常.但是当我打开XML时,我发现创建的XML不完整,它在中途被破坏.我不知道我做错了什么.是否有XMLWriter的默认大小限制?XMLWriter是创建大型XML的最佳方式吗?如果没有,请告诉我什么是创建大型xml的最佳方法?使用XDocument是否让我的生活更轻松?

这是我的代码结构(我不能把我的原始代码放在这里!! :()

using (//file stream)
{
     XmlWriter mywriter = new XmlWriter.Create(@"C:\mydata.xml");
       // write start element1
       // write start element2

                     while (//not end of file)
                    {
                    switch (entrytype)
                    {
                        Case 1:
                           // create elements
                        Case 2:
                           // create elements
                        so on ....
                    }
                    }

       // write end element2
       // write endelement1
}
Run Code Online (Sandbox Code Playgroud)

XML的大小预计为几百KB.

请回复..

Mar*_*ell 5

我怀疑你没有正确关闭写入:

using (//file stream)
{
     using(XmlWriter mywriter = new XmlWriter.Create(@"C:\Auditlog.xml")) {
       // write start element1
       // write start element2

                     while (//not end of file)
                    {
                    switch (entrytype)
                    {
                        Case 1:
                           // create elements
                        Case 2:
                           // create elements
                        so on ....
                    }
                    }

       // write end element2
       // write endelement1
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意额外的using- 如果没有编写器可能有一些数据仍然缓冲.这通常会占到缺少结束的数据; 如果没有可重复的例子,我们就无法诊断它在中途退出.

另请注意:xml 适用于大文件,但它不一定是最好的choce - 几百k应该没问题.