按id删除XDocument节点

本文关键字:节点 XDocument 删除 id | 更新日期: 2023-09-27 18:27:11

希望这对某人来说是一个容易修复的问题。

我正在使用以下代码删除xml节点。

    XDocument XD = XDocument.Parse(content);
    XD.Root.Descendants("{http://www.w3.org/2000/svg}rect").Remove();

这很好,但我现在想在rect上做一个where子句,只删除id为"bpr"的节点。我看到了一些例子,包括。Where,但这似乎不想使用我的代码。

有人能帮忙吗?

感谢

按id删除XDocument节点

Foo42答案的一个更简单的替代方案(IMO):

XDocument XD = XDocument.Parse(content);
XD.Root.Descendants("{http://www.w3.org/2000/svg}rect")
       .Where(el => (string) el.Attribute("id") == "bpr")
       .Remove();
XDocument XD = XDocument.Parse(content);
    XD.Root.Descendants("{http://www.w3.org/2000/svg}rect").Where(el => el.Attributes().Contains(at => at.Name == "id" && at.Value == "bpr")).Remove();

我认为这样的东西应该工作