C# · 12月 22, 2021

c# – 当我们有多个具有相同名称但不同属性的元素时,如何使用Xdocument从xml中删除元素

我有一个xml文档,如下所示: <Applications> <myApp> <add key=”ErrorDestinationEventLog” value=”EventLog” /> <add key=”version” value=”5.0.0.0″ /> <add key=”DebugMode_RUN” value=”true” /> </myApp></Applications>

所有元素具有相同的元素名称但不同的属性.
如何删除一个特定的元素,它的属性从这个xml使用XDocument在C#中?

xd.Element(“Applications”).Element(“myApp”).Element(xe.Name).RemoveAll();

上述命令不起作用,因为所有元素都具有相同的名称.

有没有办法识别一个元素,除了它的名字?
如果是这样,我该如何使用它从XDocument中删除它?

解决方法 string key = “version”;XDocument xdoc = XDocument.Load(path_to_xml);xdoc.Descendants(“add”) .Where(x => (string)x.Attribute(“key”) == key) .Remove();

更新你几乎做了这份工作.你错过的是按属性值过滤元素.您的代码包含过滤和删除所选元素:

xd.Element(“Applications”) .Element(“myApp”) .Elements(“add”) .Where(x => (string)x.Attribute(“key”) == key) .Remove();