加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 向现有XMLNode添加属性

发布时间:2020-12-16 01:51:34 所属栏目:百科 来源:网络整理
导读:您好我正在尝试在现有的xml文件中添加一个attribut到几个标签.这是xml结构: Planet Continent ContinentName="Africa" Country CountryName="Algeria" / Country CountryName="Angola" / ... /Continent Continent ContinentName="Europe" Country CountryN
您好我正在尝试在现有的xml文件中添加一个attribut到几个标签.这是xml结构:

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

我正在尝试为每个国家/地区代码添加Id attribut.这是我的代码:

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

XmlDocument xDoc = new XmlDocument();
xDoc.Load(@"D:Projects IDEVisual StudioTutoriale-commerceclassModelingGenerateXml fileGenerateXml filebinDebugPlanet.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 IDEVisual StudioTutoriale-commerceclassModelingGenerateXml fileGenerateXml filebinDebugPlanets.xml");

问题是此代码仅将id添加到XML文件中的最后一个元素.
现在起初我认为那是因为只有一个条件是真的然后我添加了一个计数器,结果证明这个条件是真实的179次.如果是这样的话,为什么我在结束时只添加了一个attributt?

解决方法

你应该放置XmlAttribute xKey = xDoc.CreateAttribute(“Id”);在循环内

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读