c# – 将XML节点添加到多个父节点(具有相同名称)
发布时间:2020-12-15 21:41:35 所属栏目:百科 来源:网络整理
导读:我试图将 XML节点添加到多个父节点(具有相同的名称).但它只是添加到XML的Last节点而不是全部. 输入XML Record Emp ID12/ID NameABC/Name /Emp Emp ID12/ID NameABC/Name /Emp/Record 我想将Location元素添加到每个Emp节点.我的代码如下: XmlNodeList xNodeL
我试图将
XML节点添加到多个父节点(具有相同的名称).但它只是添加到XML的Last节点而不是全部.
输入XML <Record> <Emp> <ID>12</ID> <Name>ABC</Name> </Emp> <Emp> <ID>12</ID> <Name>ABC</Name> </Emp> </Record> 我想将Location元素添加到每个Emp节点.我的代码如下: XmlNodeList xNodeList = doc.SelectNodes("/Record/Emp"); XmlElement xNewChild = doc.CreateElement("Location"); xNewChild.InnerText = "USA"; foreach (XmlNode item in xNodeList) { item.AppendChild(xNewChild); } doc.Save(path); 但我得到这样的输出: <Record> <Emp> <ID>12</ID> <Name>ABC</Name> </Emp> <Emp> <ID>12</ID> <Name>ABC</Name> <Location>USA</Location> </Emp> </Record> Location元素尚未添加到第一个Emp节点. 注意:调试后,我能够发现即使是第一个Emp节点也添加了元素.但是,在保存的XML文件中,我看到了这种奇怪的行为. 解决方法
您的xNewChild是一个新元素.只需将其添加到多个节点,只会序列化到最后一个节点.这样的改变应该有效:
XmlNodeList xNodeList = doc.SelectNodes("/Record/Emp"); foreach (XmlNode item in xNodeList) { XmlElement xNewChild = doc.CreateElement("Location"); xNewChild.InnerText = "USA"; item.AppendChild(xNewChild); } doc.Save(path); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |