gpt4 book ai didi

c# - 将属性添加到现有的 XMLNodes

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

您好,我正在尝试向现有 xml 文件中的多个标签添加属性。这是 xml 结构:

<Planet>
<Continent ContinentName="Africa">
<Country CountryName="Algeria" />
<Country CountryName="Angola" />
...
</Continent>
<Continent ContinentName="Europe">
<Country CountryName="France" />
<Country CountryName="England" />
...
</Continent>
...
</Planet>

我正在尝试为每个国家/地区标签添加一个 Id 属性。这是我的代码:

public static List<Cities> cities = new List<Cities>();

XmlDocument xDoc = new XmlDocument();
xDoc.Load(@"D:\Projects IDE\Visual Studio\Tutorial\e-commerce\classModeling\GenerateXml file\GenerateXml file\bin\Debug\Planet.xml");
XmlAttribute xKey = xDoc.CreateAttribute("Id");
XmlElement root = xDoc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("//Country");
int count = 0;

foreach( XmlNode node in nodes ) {
string name = node.Attributes["CountryName"].Value;

foreach (var cityObj in cities)
{
xKey.Value = cityObj.cityInitial;

if(name == cityObj.cityName)
{
count++;
node.Attributes.Append(xKey);
Console.WriteLine(count);
}
}

}

xDoc.Save(@"D:\Projects IDE\Visual Studio\Tutorial\e-commerce\classModeling\GenerateXml file\GenerateXml file\bin\Debug\Planets.xml");

问题在于此代码仅将 id 添加到 XML 文件中的最后一个元素。一开始我认为那是因为只有一个条件为真,但后来我添加了一个计数器,结果证明该条件为真 179 次。如果是这样,为什么我在结束时只添加了一个属性?

最佳答案

您应该将 XmlAttribute xKey = xDoc.CreateAttribute("Id"); 放在循环内

关于c# - 将属性添加到现有的 XMLNodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637611/

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