2011-08-27 30 views
1

XML文檔刪除最後一個記錄/元素我有以下形式的XML文檔:從現有的使用LINQ

<RootElement xmlns="http://mynamespace"> 
     <MyElement> 
     <ElementNumber>0</ElementNumber> 
     <Data>mydata</Data> 
     <MoreData>more my data</MoreData> 
     </MyElement> 
     <MyElement> 
     <ElementNumber>1</ElementNumber> 
     <Data>mydata 2</Data> 
     <MoreData>more my data 2</MoreData> 
     </MyElement> 
    </RootElement> 

我想刪除最後一個MyElement記錄。也就是說,ElementNumber包含"1"的數據。如果有幫助,我將永遠需要刪除XML文件中的最後一個MyElement記錄。

+0

會不會有永遠不止這些元素之一? –

+1

如果您示例中的兩個元素相反,您是否還想刪除數據爲「1」的元素? – alun

+0

假設可能只有一個MyElement。也就是說,必須存在至少一個MyElement,因此必須考慮到這一點。謝謝! – JohnZaj

回答

2

簡單:

var xmlPath = @"C:\path\to\file.xml"; 
var doc = XDocument.Load(xmlPath); 
XNamespace ns = "http://mynamespace"; 
var removeMe = doc.Descendants(ns + "MyElement").LastOrDefault(); 
if (removeMe != null) 
    removeMe.Remove(); 
// uncomment when ready to save 
//doc.Save(xmlPath); 
+0

像魅力一樣工作。 – JohnZaj