删除XML根目录下的特定节点?

mka*_*car 6 .net c# xml linq linq-to-xml

我的XML在下面;

<XML ID="Microsoft Search Thesaurus">
 <thesaurus xmlns="x-schema:tsSchema.xml">
   <diacritics_sensitive>1</diacritics_sensitive>
   <expansion>
     <sub>Internet Explorer</sub>
     <sub>IE</sub>
     <sub>IE5</sub>
   </expansion>
   <expansion>
     <sub>run</sub>
     <sub>jog</sub>
   </expansion>
 </thesaurus>
</XML>
Run Code Online (Sandbox Code Playgroud)

我想从XML中删除"扩展"节点.删除过程后,就像那样;

<XML ID="Microsoft Search Thesaurus">
 <thesaurus xmlns="x-schema:tsSchema.xml">

 </thesaurus>
</XML>
Run Code Online (Sandbox Code Playgroud)

我的代码如下;

XDocument tseng = XDocument.Load("C:\\tseng.xml");
XElement root = tseng.Element("XML").Element("thesaurus");
root.Remove();
tseng.Save("C:\\tseng.xml");
Run Code Online (Sandbox Code Playgroud)

我收到错误"对象引用未设置为对象的实例".对于"root.Remove()"行.如何从XML文件中删除"扩展"节点?谢谢.

Kir*_*huk 3

使用:

将仅删除expansion元素:

XNamespace ns = "x-schema:tsSchema.xml";
tseng.Root.Element(ns + "thesaurus")
    .Elements(ns + "expansion").Remove();
Run Code Online (Sandbox Code Playgroud)

将删除 的所有子项thesaurus

XNamespace ns = "x-schema:tsSchema.xml";
tseng.Root.Element(ns + "thesaurus").Elements().Remove();
Run Code Online (Sandbox Code Playgroud)