我正在尝试将 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 文件中,我看到了这种奇怪的行为。