-1

我有一个包含大量节点的 xmldocument。xmldocument 是从字符串变量加载的。我正在尝试使用 xpath 获取节点集合。我的问题是,当我在不调试的情况下运行应用程序时,集合的节点很少(大约 5 或 6 个),但是如果我在获取节点集合行进行调试并按 F11,我会根据我在该点暂停的时间获得不同数量的节点. 我不知道发生了什么。是因为内存处理吗?还是我做错了什么。(注意:我正在从 DOM 中删除 foreach 循环内的集合中的节点)

任何想法?

如果我在返回时暂停,则该集合只有 6 个节点。

如果我在 foreach 暂停,该集合有 556 个节点

4

1 回答 1

0

XmlNodeList实现可能是懒惰的。并且在遍历集合时操作文档可以更改集合。所以通常,如果你想删除在 DOM 中找到的节点XmlNodeList,你会向后执行,例如for (int i = lstDel.Count - 1; i >= 0; i--) { lstDel[i].ParentNode.RemoveChild(lstDel[i]); }.

如果您仍然有问题,请考虑发布代码示例,以便我们重现问题,仅通过屏幕截图很难判断发生了什么。

于 2013-01-02T09:35:52.903 回答