XML ノードを複数の親ノード (同じ名前) に追加しようとしています。ただし、XML の最後のノードに追加するだけであり、すべてではありません。
入力 XML
<Record>
<Emp>
<ID>12</ID>
<Name>ABC</Name>
</Emp>
<Emp>
<ID>12</ID>
<Name>ABC</Name>
</Emp>
</Record>
すべての Emp ノードに Location 要素を追加したいと考えています。私のコードは以下の通りです:
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 ファイルでは、この奇妙な動作が見られます。