【发布时间】:2016-12-04 23:45:48
【问题描述】:
我必须将节点从现有 XML 文件复制到新创建的 XML 文件。 我正在使用 XDocument 实例来访问现有的 XML 文件。问题是 XML 文件可能非常大(比如说 500K 行;Openstreetmap 数据)。
在不导致内存错误的情况下循环遍历大型 XML 文件的最佳方法是什么?
我目前只使用XDocument.Load(path) 并循环通过doc.Descendants(),但这会导致程序冻结,直到循环完成。所以我认为我必须循环异步,但我不知道实现这一点的最佳方法。
【问题讨论】:
-
XmlReader和IEnumerable迭代器 (yield)