2012-06-04 175 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並用原始值覆蓋我的新值。在我沒有加載文本框中的值後,保存工作正常。