如何在 xml 文件上保存属性值?
How to save attribute value on xml file?
我正在尝试在我的 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;
}
}
}
事实上有两件事可能需要改变。
a) 您正在使用 XDocument.Load 和 XElement.Load 阅读 Xml。更改时使用的是 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;
}
}
}
我正在尝试在我的 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;
}
}
}
事实上有两件事可能需要改变。
a) 您正在使用 XDocument.Load 和 XElement.Load 阅读 Xml。更改时使用的是 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;
}
}
}