C# 属性未使用LINQ更新为XML?

C# 属性未使用LINQ更新为XML?,c#,linq-to-xml,C#,Linq To Xml,我将xml文件加载到Xelement中。然后,我通过以下方式查找名为R的元素: XElement elem = xmlTemplate.Descendants().Where(x => x.Name.LocalName == "R").FirstOrDefault(); 然后,我通过以下方式搜索属性EF和EX: elem.Attribute("EF").SetValue(txtEffective.Text); elem.Attribute("EX").SetValue(txtExpire

我将xml文件加载到Xelement中。然后,我通过以下方式查找名为R的元素:

XElement elem = xmlTemplate.Descendants().Where(x => x.Name.LocalName == "R").FirstOrDefault();
然后,我通过以下方式搜索属性EF和EX:

elem.Attribute("EF").SetValue(txtEffective.Text);
elem.Attribute("EX").SetValue(txtExpire.Text);
但是当我调用xTemplate.Save(…)时,它不会保存udpated属性。我也尝试过:

elem.Attribute("EF").Value = txtEffective.Text;
elem.Attribute("EX").Value = txtExpire.Text;

我发现了问题,但不知道如何避免。加载XML时,我正在表单的两个文本框中加载这两个属性。当我更改文本框中的值以更新属性时,它使用文本框中的原始值而不是新值更新xml。我想知道这是否与文本框在页面加载时加载的事实有关,当我单击按钮时,它实际上再次加载xml并用原始值覆盖我的新值。在我没有加载文本框中的值后,保存工作正常。

您能将XML文件包括在内吗?您的代码应该可以工作,您可以使用“stringxml=xmlTemplate.ToString();”检查您的XElement是否更新。也许你在保存时会遇到问题。。。。