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

siv*_*hna 13 c# xml parsing .net-2.0

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

Spe*_*nce 12

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


Joh*_*lén 8

XmlDocument在这种情况下是不可行的,因为它会尝试将该千兆字节吸入主内存.我很惊讶你发现XmlTextReader太慢了.你尝试过类似下面的东西吗?

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


pil*_*lif 6

XMLTextreader不应该挂起,因为它是基于流的,只是处理数据块.

如果它挂起,则可能是您在加载文件时出错了.