如何使用LINQ删除没有子节点的Xelement?
这是我的XML
,
我正在使用以下代码删除节点而不删除其下降/子节点,
XDocument doc = XDocument.Load("D:\\parsedXml.xml"); doc.Descendants("A").Descendants("X").Remove();
但是删除整个块。
预期产量:
var x = doc.Root.Element("X"); x.Remove(); doc.Root.Add(x.Elements());
已批准的答案将始终将子项添加到文档的末尾。 如果您需要删除文档中间的条目并将孩子留在他们所在的位置,请执行以下操作:
x.AddAfterSelf(x.Nodes()); x.Remove();
以下代码删除所有
节点,使子节点保持在正确的位置:
while (doc.Descendants("x").Count() > 0) { var x = doc.Descendants("x").First(); x.AddAfterSelf(x.Nodes()); x.Remove(); }