我正在尝试迭代 XElements,以便可以在子元素满足条件的地方更新它们。我查看了其他帖子的答案,据我所知,我使用的方法应该有效(但没有)。
第一行代码选择要更新的元素(这按预期工作)。如果我在循环中放置断点,将鼠标悬停在“existingContact”上会显示正确的联系人元素。但是,“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);
}