我正在尝试在xml文件中保存一个值。在下面的代码中,“ s.Attribute(“ Value”)。Value = value; break;“行执行并保存文件,但不会更改属性的值
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;
}
}
}
答案 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;
}
}
}