Как сохранить значение атрибута в файле XML? - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь сохранить значение в моем 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 голосов
/ 27 мая 2019

На самом деле есть две вещи, которые могут варьироваться.

a) Вы читаете Xml, используя XDocument.Load, а также XElement.Load.При изменении вы используете Elements, а при сохранении - XDocument.

b) Поскольку иерархия в XML имеет вид (Items.Item), было бы лучше использовать Descendants для анализа элементов.

Полный код

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;
        }
    }
}
...