【发布时间】:2018-09-25 18:12:25
【问题描述】:
我需要在元素“ID”之后的每个父节点“Emp”中添加一个新元素“Location”。
<Record>
<Emp>
<ID>12</ID>
<Name>ABC</Name>
</Emp>
<Emp>
<ID>12</ID>
<Name>ABC</Name>
</Emp>
</Record>
我按照 Erik Philips 的示例和以下回答中的步骤进行操作
Add an XML node to multiple parent nodes(which have same name)
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);
而不是这个
item.AppendChild(xNewChild);
我添加了新语句
item.InsertAfter(xNewChild, doc.SelectSingleNode("Emp//ID"));
这会在 Emp 节点开始之后而不是 ID 之后插入新元素。
<Record>
<Emp>
<Location>USA</Location>
<ID>12</ID>
<Name>ABC</Name>
</Emp>
<Emp>
<Location>USA</Location>
<ID>12</ID>
<Name>ABC</Name>
</Emp>
</Record>
谁能建议我哪里出错了?
【问题讨论】:
-
阅读 this 并考虑添加示例 XML 和演示此问题的可运行代码。
-
谢谢@spender。我已经编辑了问题并添加了更多细节。我希望它看起来不错。
标签: c#