Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中解析非常庞大的XML文件?_C#_Xml_Parsing - Fatal编程技术网

如何在C#中解析非常庞大的XML文件?

如何在C#中解析非常庞大的XML文件?,c#,xml,parsing,C#,Xml,Parsing,我正在处理dblp XML文件。实际上,我想解析dblp.xml文件,并提取有用的信息,以便在某个项目中进行进一步处理。这个XML文件非常大(1.1GB),我甚至无法打开这个文件 如果您有dblp.xml的C#解析器,请指导我,或者您可以指导我如何解析庞大的xml文件。使用xml reader而不是xml dom。XML dom将整个文件存储在内存中,这是完全无用的: 您需要使用 它表示一个读卡器,该读卡器提供对XML数据的快速、非缓存、仅向前访问不会将所有数据加载到内存中,这些数据应该与大型数

我正在处理dblp XML文件。实际上,我想解析dblp.xml文件,并提取有用的信息,以便在某个项目中进行进一步处理。这个XML文件非常大(1.1GB),我甚至无法打开这个文件


如果您有dblp.xml的C#解析器,请指导我,或者您可以指导我如何解析庞大的xml文件。

使用xml reader而不是xml dom。XML dom将整个文件存储在内存中,这是完全无用的:

您需要使用

它表示一个读卡器,该读卡器提供对
XML
数据的快速、非缓存、仅向前访问不会将所有数据加载到内存中,这些数据应该与大型数据集一起使用。其他内置的
.NET
解决方案保留完整生成的对象图


XML解析一直被认为是令人厌恶的。这里有一个这样的讨论可以启发您:请参阅XStreamingElement at.Ryan Gates->OSM XML格式的文件。这可能是原因。有同样的问题,但意识到代码是用32位编译的。在64位重新编译后,它工作正常。当然,最好使用提出的其他方法,例如XMLReader,但是这个简单的技巧可以避免修改代码。