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

在C#中修改单个XML属性

发布时间:2020-12-16 01:36:57 所属栏目:百科 来源:网络整理
导读:我已经把 XML文档编写得很好了,它会看起来像这样 Team Character Name="Bob" Class="Mage"/ Character Name="Mike" Class="Knight"//Team 我正在尝试找到一种方法来访问单个字符的“类”属性并进行修改.到目前为止,我已经达到了可以精确定位特定字符的程度,
我已经把 XML文档编写得很好了,它会看起来像这样

<Team>
  <Character Name="Bob" Class="Mage"/>
  <Character Name="Mike" Class="Knight"/>
</Team>

我正在尝试找到一种方法来访问单个字符的“类”属性并进行修改.到目前为止,我已经达到了可以精确定位特定字符的程度,但我无法弄清楚如何访问’Class’属性并为char修改它.

void Write(string path,string charName,string varToChange,string value){

    XmlNode curNode = null;
    XmlDocument doc = new XmlDocument();
    doc.Load(path);

    XmlElement rootDoc = doc.DocumentElement;
    curNode = rootDoc;

    if(curNode.HasChildNodes){

        for(int i=0; i<curNode.ChildNodes.Count; i++){

            if(charName == curNode.ChildNodes[i].Attributes.GetNamedItem("Name").Value){

                // Code would go here
            }
        }
    }
    return;
}

解决方法

使用XPATH:

XmlDocument doc = new XmlDocument();
doc.Load(path);

var nodes = doc.SelectNodes(String.Format("/Team/Character[@Name="{0}"]",charName));

foreach (XmlElement n in nodes)
{
    n.SetAttribute(varToChange,value);
}

(编辑:李大同)

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

    推荐文章
      热点阅读