在.net中读取大型XML文档

本文关键字:XML 文档 大型 读取 net | 更新日期: 2023-09-27 18:10:45

我需要使用。net文件读取大型xml,这些文件很容易达到几个GB的大小。

我试图使用XDocument,但它只是抛出一个系统。当我尝试加载文档时,OutOfMemoryException .

读取大容量XML文件的最高效方法是什么?

在.net中读取大型XML文档

你基本上必须在这里使用"拉"模型- XmlReader和朋友。这将允许您流式传输文档,而不是一次将所有文档加载到内存中。

注意,如果你知道你在一个"足够小"的元素的开始,你可以从一个XmlReader创建一个XElement,使用LINQ to XML的荣耀来处理它,然后移动到下一个元素。

下面的页面读起来很有趣,它提供了一种从XML文件中挖掘数据而不将其加载到内存中的方法。它允许您将XmlReader的速度与Linq:

的灵活性结合起来。http://msdn.microsoft.com/en-us/library/bb387035.aspx

还有一篇基于这种技术的有趣文章:

http://blogs.msdn.com/b/xmlteam/archive/2007/03/24/streaming -与- linq - - xml - - 2.部分aspx

您可以尝试使用XmlTextReader实例。

http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx