我有一个xml文件(Sample.xml),它具有以下结构
<RootElement>
<Child Name="FirstChild" Start="1" End="2"/>
<Child Name="SecondChild" Start="0" End="2"/>
<Child Name="ThirdChild" Start="1" End="2"/>
<Child Name="FourthChild" Start="0" End="2"/>
<Child Name="FifthChild" Start="0" End="2"/>
<Child Name="SixthChild" Start="1" End="2"/>
<MatchedChilds>
<Child Name="FirstChild" />
<Child Name="SecondChild" />
<Child Name="ThirdChild" />
<Child Name="FourthChild" />
<Child Name="FifthChild" />
<Child Name="SixthChild" />
</MatchedChilds>
</RootElement>
我需要删除元素“Child”,如果它直接位于“RootElement”
下请给我一个XML到LINQ approch来做这个
答案 0 :(得分:2)
您需要遍历节点并将其删除,如下所示:
foreach(var child in root.Elements("Child").ToArray())
child.Remove();
Elements
调用将返回您调用它的元素的所有直接子元素;它不会让孙子孙女回归;
您必须调用ToArray
,否则您将在枚举时修改该集合。
答案 1 :(得分:1)
XDocument X_DOC = XDocument.Load(Application.StartupPath + "\\Sample.xml");
X_DOC.Root.Elements("Child").Remove();
X_DOC.Save(Application.StartupPath + "\\Sample.xml");