按ID删除XDocument节点

时间:2012-03-09 12:47:10

标签: c# xml linq linq-to-xml

希望这对于某人来说很容易解决。

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

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

这很好但我现在想在rect上做一个where子句,只删除id为“bpr”的节点。我已经看过一些例子,包括。但是这似乎不想用我的代码。

有人可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:2)

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();

答案 1 :(得分:1)

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();

我认为这样的事情应该有效