2011-08-27 28 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