我有一个1GB的XML文件,想要解析它.如果我使用XML Textreader或XMLDocument,结果很慢,有时会挂起......
您必须使用xmlreader实现自定义逻辑.xmlreader在使用之前不会将完整的XML加载到内存中,这意味着您可以从流中读取它并对其进行处理.
XmlDocument在这种情况下是不可行的,因为它会尝试将该千兆字节吸入主内存.我很惊讶你发现XmlTextReader太慢了.你尝试过类似下面的东西吗?
using (XmlTextReader rdr = new XmlTextReader("MyBigFile.txt")) { // use rdr to advance through the document. }
XMLTextreader不应该挂起,因为它是基于流的,只是处理数据块.
如果它挂起,则可能是您在加载文件时出错了.