2012-06-04 96 views
1

我将一个xml文件加载到Xelement中。然后我寻找一个通过命名为r的元素:使用LINQ TO XML不更新属性?

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; 
+0

请问您能否包含您的XML文件?你的代码应该可以工作,你可以用“string xml = xmlTemplate.ToString();”以查看您的XElement是否已更新。也许你会遇到保存问题.... –

回答

0

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