gpt4 book ai didi

c# - 将 XML 节点添加到多个父节点(具有相同的名称)

转载 作者:数据小太阳 更新时间:2023-10-29 02:12:35 26 4
gpt4 key购买 nike

我正在尝试将 XML 节点添加到多个父节点(具有相同的名称)。但它只是添加到 XML 的最后一个节点,而不是所有节点。

输入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);

关于c# - 将 XML 节点添加到多个父节点(具有相同的名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com