XDocument删除节点
我有一个XML文件
#text_filter,#text_filter,#text_filter,#text_filter,#text_filter,#text_filter recinfoArea Id NazovProjektu
我想删除beforeInit和afterInit元素。
我试过了
xml.Elements().Where(e=>e.Name == "beforeInit" || e.Name == "afterInit").Remove();
但没有运气。
如果你想删除每个出现的beforeInit或afterInit你可以使用
xml.Descendants().Where(e=>e.Name == "beforeInit" || e.Name == "afterInit").Remove();
(后代而不是元素)。 elements()返回直接子节点的列表,而后代返回每个节点。
如果xml是XElement,请尝试:
xml.Element("head").Elements().Where(e=>e.Name == "beforeInit" || e.Name == "afterInit").Remove();
否则,如果它是XDocument:
xml.Root.Element("head").Elements().Where(e=>e.Name == "beforeInit" || e.Name == "afterInit").Remove();
现在的方式是,它设置为在
查找子元素,而不是 。 换句话说,Elements()仅返回节点的直接子节点。 如果你想要所有的后代,无论什么级别,你都想要后代()。