如何将属性值保存在xml文件中?

时间:2019-05-27 04:35:47

标签: c# xml linq-to-xml

我正在尝试在xml文件中保存一个值。在下面的代码中,“ s.Attribute(“ Value”)。Value = value; break;“行执行并保存文件,但不会更改属性的值

enter image description here

     public void CustomSettingXML_WriteValue(string key, string value)
    {

        XDocument doc = XDocument.Load(xmlFile);

        var elements = from x in XElement.Load(xmlFile).Elements("Item") select x;

        foreach (var s in elements)
        {
            if (s.Attribute("Text").Value == key)
            {
                s.Attribute("Value").Value = value; 
                doc.Save(@xmlFile);                    
               break;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

实际上有两件事可能必须有所不同。

a)您正在使用XDocument.Load和XElement.Load阅读Xml。更改时,您正在使用Elements,而保存时,您正在使用XDocument。

b)由于XML中的层次结构是(Items.Item),所以最好使用后代来解析元素。

完整代码

public void CustomSettingXML_WriteValue(string key, string value)
{
    XDocument doc = XDocument.Load(xmlFile);
    var elements = from x in doc.Descendants("Item") select x;
    foreach (var s in elements)
    {

        if (s.Attribute("Text").Value == key)
        {
            s.Attribute("Value").Value = value; 
            doc.Save(@xmlFile);                    
           break;
        }
    }
}