繁体   English   中英

在C#中解析大型XML(大小为1GB)的最佳方法是什么?

[英]What is the best way to parse large XML (size of 1GB) in C#?

我有一个1GB的XML文件,想解析它。 如果我使用XML Textreader或XMLDocument,则结果非常缓慢,有时会挂起...

您必须使用xmlreader实现自定义逻辑。 xmlreader不会在使用前将完整的XML加载到内存中,这意味着您可以从流中读取它并对其进行处理。

XmlDocument在这种情况下不可行,因为它将尝试将该GB数据吸入主内存。 我惊讶于您发现XmlTextReader太慢。 您是否尝试过以下方法?

using (XmlTextReader rdr = new XmlTextReader("MyBigFile.txt"))
{
     // use rdr to advance through the document.
}

XMLTextreader不应挂起,因为它是基于流的,只适用于数据块。

如果挂起,则很可能是您在加载文件时做错了什么。

我对这个主题不是很熟悉,但是afaik XmlReader类应该可以很好地解决您的特定问题。 毕竟,它们为此进行了优化。

我只想通过我发现的性能比较来备份所有推广XmlReader的人:

http://www.nearinfinity.com/blogs/joe_ferner/performance_linq_to_sql_vs.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM