如何加载大型XML文件时解决的System.OutOfMemoryException

问题描述 投票:2回答:2

我有我的程序代码,这实际上装载500 MB和备份文件。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);
reader.Close();

我得到这个类型的错误,不知道如何解决这个问题。请给我一些建议。

c# .net xml winforms
2个回答
4
投票

我会用一个XmlReader解析文档,提供只向前的数据访问和内存中清除很好本身了 - 当然,也可以是复杂得多,而不XmlDocument类的便利。

这个简单的示例将通过开始逐行读取文件中的行,为每一行一个XmlReader启动。

using (var rdr = XmlReader.Create(new StreamReader("File.xml")))
{
    while (rdr.Read())
    {
        //do what you will with the line
    }
}

使用的XmlReader在XmlReader Properties (MSDN)时,请参阅提供给您的方法和属性


0
投票

你需要像SAX但对于.NET。

http://sourceforge.net/projects/saxdotnet/或XmlReader中,基本上基于数据流分析器。

HTH

© www.soinside.com 2019 - 2024. All rights reserved.