Как я могу изменить атрибут элемента в файле XML, используя С#?
Как изменить атрибут XML
Ответ 1
Mike; Каждый раз, когда мне нужно изменить XML-документ, я работаю так:
//Here is the variable with which you assign a new value to the attribute
string newValue = string.Empty;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFile);
XmlNode node = xmlDoc.SelectSingleNode("Root/Node/Element");
node.Attributes[0].Value = newValue;
xmlDoc.Save(xmlFile);
//xmlFile is the path of your file to be modified
Надеюсь, вы сочтете это полезным.
Ответ 2
Использование LINQ для xml, если вы используете фреймворк 3.5:
using System.Xml.Linq;
XDocument xmlFile = XDocument.Load("books.xml"); 
var query = from c in xmlFile.Elements("catalog").Elements("book")    
            select c; 
foreach (XElement book in query) 
{
   book.Attribute("attr1").Value = "MyNewValue";
}
xmlFile.Save("books.xml");
		Ответ 3
Если атрибут, который вы хотите изменить, не существует или был случайно удален, возникает исключение. Я предлагаю вам сначала создать новый атрибут и отправить его следующей функции:
private void SetAttrSafe(XmlNode node,params XmlAttribute[] attrList)
    {
        foreach (var attr in attrList)
        {
            if (node.Attributes[attr.Name] != null)
            {
                node.Attributes[attr.Name].Value = attr.Value;
            }
            else
            {
                node.Attributes.Append(attr);
            }
        }
    }
Использование:
   XmlAttribute attr = dom.CreateAttribute("name");
   attr.Value = value;
   SetAttrSafe(node, attr);