微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C#中修改单个XML属性

我已经把 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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐