2013-05-30 20 views
0

我試圖創建一個元素,定義XML文檔的路徑添加到XML文檔的子節點的屬性,我的嘗試之一是:使用LINQ

XElement main = XElement.Load(xmlpath); 

那我就選擇現有元素,我想加一個屬性

main.XPathSelectElement("/Row/ip_addresses").SetAttributeValue("id", sp_range.ToString()); 

拉斯維加斯嘗試這些都

main.XPathSelectElement("/Row/ip_addresses").ReplaceAttributes("id", sp_range.ToString()); 

沒有埃羅這個代碼中提供的rs只是沒有發生任何事情的XML文檔和現有的元素,現有的子元素和父母是我使用Xpath導航到我想添加屬性的子元素不存在根據Linq我們應該能夠改變存在或不存在的屬性,並更改存在的ElementTags或創建不存在的Elements。

請任何意見,將有助於

回答

0

你似乎並沒有被持續/保存更改...

嘗試XElement.Save方法

+0

它說在使用main.save之前它需要被序列化到一個writer;它紅襯。 – shawn

+0

@shawn您可以在試圖保存時顯示您輸入的代碼嗎? –

+0

你可以通過調用main.ToString()來測試它的值是否更新。它沒有更新任何東西的原因是因爲你的節點路徑不正確。 – loopedcode

0

你是從哪個沒有按」「行」選擇t存在於當前元素下。當前元素本身就是「行」。因此,您需要從根目錄"/ip_addresses"中選擇,而不是從"/Row/ip_addresses"中選擇。

main.XPathSelectElement("/ip_addresses").SetAttributeValue("id",sp_range.ToString())); 
+0

根元素是導入父項是行和我試圖在XML中訪問的孩子是ip_addresses,所以我的xpath是行/ ip_addresses,它選擇行的子元素的所有元素。或者// ip_addresses,它可以獲取所有ip_address,而不管它們在XML中的哪個位置,但都不工作 – shawn