我正在尝试迭代XElements,以便在子元素满足条件的情况下更新它们。我看过其他帖子的答案,据我所知,我正在使用的方法应该有用(但不是)。
第一行代码选择要更新的元素(这可以按预期工作)。如果我在循环中放置一个断点,将鼠标悬停在'existingContact'上会显示正确的contact元素。但是,'Debug.WriteLine(existingName)'行总是从集合中的第一个元素输出值。
关于为什么会发生这种情况(以及如何解决)的任何解释都非常感谢!
IEnumerable<XElement> existingContacts = rootXElement.XPathSelectElements(namespacedXPath, _namespaceManager);
foreach (XElement existingContact in existingContacts)
{
string nameNodePath = getNamespacedXPath("/CI_ResponsibleParty/individualName");
string existingName = existingContact.XPathSelectElement(nameNodePath, _namespaceManager).Value;
Debug.WriteLine(existingName);
}