如何在 C# 中解析非常大的 XML 文件? [复制]
Posted
技术标签:
【中文标题】如何在 C# 中解析非常大的 XML 文件? [复制]【英文标题】:How to parse very huge XML Files in C#? [duplicate] 【发布时间】:2013-03-24 05:09:26 【问题描述】:我正在处理 dblp XML 文件。我实际上想解析 dblp.xml 文件,并想提取有用的信息,以便在某些项目中进一步处理。而且那个 XML 文件非常大(1.1 GB),我什至无法打开这个文件。
如果你有 dblp.xml 的 C# 解析器,请指导我,或者你可以指导我关于这个,或者关于我们如何解析巨大的 xml 文件。
【问题讨论】:
XML 解析在 SO 上被讨论过作呕。这是一个可以启发你的讨论:***.com/questions/55828/how-does-one-parse-xml-files 也可以在 msdn.microsoft.com/en-us/library/… 上查看 XStreamingElement。 Ryan Gates -> XML 格式的 OSM 文件。这可能是原因。 遇到了同样的问题,但意识到代码是用 32 位编译的。以 64 位重新编译后,它工作正常。当然最好使用其他提出的方法,例如 XMLReader,但是这个简单的技巧可以避免修改代码。 【参考方案1】:使用 XML 阅读器而不是 XML dom。 XML dom 将整个文件存储在内存中,这完全没用:
http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx
【讨论】:
【参考方案2】:你需要使用XmlReader
它代表一个阅读器,它提供对XML
数据的快速、非缓存、只进的访问。 不会将所有数据加载到内存中,应该用于处理大量数据。其他内置.NET
解决方案保留完整生成的对象图。
XmlReader in action (by Jon Skeet)
【讨论】:
以上是关于如何在 C# 中解析非常大的 XML 文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章