使用LINQ从现有XML文档中删除最后一条记录/元素

时间:2011-08-27 06:09:08

标签: c# xml linq

我有一个以下形式的XML文档:

    <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记录,如果有帮助的话。

1 个答案:

答案 0 :(得分: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);