使用C#清空某个类型的所有XML节点

时间:2014-08-18 10:04:42

标签: c# xml

我目前使用以下结构构建XML文档:

<a>
     ....
     <b>
           <c>
           </c>
           <d>
           ....
           </d>
     </b>
</a>
<a>
   ....

我想使用C#解析这个XML文档并输出一个文件,其中所有的b节点都被清空,而不会丢失我的b节点。从而产生以下结果:

<a>
   ...
   <b />
</a>
<a>
   ...

有人能告诉我这样做的方法吗?

1 个答案:

答案 0 :(得分:4)

LINQ to XML会使这很简单:

var doc = XDocument.Load(...);
var bs = doc.Descendants("b").ToList();
foreach (var b in bs)
{
    b.ReplaceNodes();
}

(如果您想删除ReplaceAll个节点中的属性,请使用ReplaceNodes代替b。)