在.net中读取大型XML文档
我需要使用.net文件读取大型xml,这些文件很容易达到几GB。
我试图使用XDocument,但它只是在我尝试加载文档时抛出一个System.OutOfMemoryException。
读取大尺寸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-with-linq-to-xml-part-2.aspx
您可以尝试使用XmlTextReader
实例。
http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx
- JSON.NET – 如何为存储在数组/列表中作为对象类型的原始C#类型包括类型名称处理
- 我可以在.net 4中部署我的ASP.NET MVC 4应用程序
- 使用ASP.Net MVC RouteConfig的AngularJS Ui-Router。 它是如何工作的?
- 将C#知识转换为VB.NET任何潜在的问题?
- TcpClient.Connected返回true但客户端未连接,我可以使用什么?
- 删除TableLayoutPanel中的特定行
- 一个数据库请求中的Concat IQueryable集合
- 使用Replace和Length检查避免SQL Not IN
- entity framework列表包含在lambda中