简体   繁体   English

如何使用Linq to XML和Lambda表达式从XML文件中删除元素

[英]How to remove an element from XML file using Linq to XML and lambda expression

I have an xml as below 我有一个XML如下

<Person>
   <Name>xxx</Name>
   <Age>xx</Age>
   <Data>xxxx</Data>
</Person>
<Person>
   <Name>xxx</Name>
   <Age>xx</Age>
   <Data>xxxx</Data>
</Person>
<Person>
   <Name>xxx</Name>
   <Age>xx</Age>
   <Data>xxxx</Data>
</Person>

How to remove <Data> element from the tree using Linq to XML, Lamda Expression in C#? 如何使用Linq to XML,C#中的Lamda表达式从树中删除<Data>元素? where <Data> is a auto generated element and XML structure may vary. 其中<Data>是自动生成的元素,并且XML结构可能有所不同。

it all depends on what element you want to remove but you can use something like this 这完全取决于您要删除的元素,但是您可以使用像这样的东西

XDocument people = XDocument.Load("filenamre.xml");
IEnumerable<XElement> Person = people.Element("Person");
//gets  the element you want to remove based on value 
XElement name = Person.Where(p => p.Element("xxx").Value == "1").FirstOrDefault();
//removes the name 
name.Remove();
//create a new file without the element 
people.Save(Server.MapPath("Newfilenamre.xml"));

Removing element other than first one. 除去第一个以外的元素。 Means only first must be there rest all must be deleted. 意味着只有首先必须在那里休息,所有必须删除。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM