C# 使用LINQ从xml中删除元素

C# 使用LINQ从xml中删除元素,c#,xml,xml-parsing,linq-to-xml,C#,Xml,Xml Parsing,Linq To Xml,我有一个xml文件,如: <starting> <start> <site>mushfiq.com</site> <site>mee.con</site> <site>ttttt.co</site> <site>jkjhkhjkh</site> <site>jhkhjkjhkhjkhjkjhkh<

我有一个xml文件,如:

<starting>
   <start>
      <site>mushfiq.com</site>
      <site>mee.con</site>
      <site>ttttt.co</site>
      <site>jkjhkhjkh</site>
      <site>jhkhjkjhkhjkhjkjhkh</site>
     <site>dasdasdasdasdasdas</site>
 </start>
</starting>

如果我把第一个元素的值放在文本框中,它就可以删除它,但是如果我把第一个元素的值以外的任何元素的值放在文本框中,它就不能删除!我需要我会把任何元素的任何值…因为它可以是第二个元素或第三个或第四个,依此类推。。。。有人能帮我吗?

编辑:好的,通过进一步的编辑,你想做的事情会更清楚,而且由于使用了on
IEnumerable where T:XNode
,它比你现在做的要容易得多:

string target = txt.Text.Trim();
doc.Descendants("start")
   .Elements("site")
   .Where(x => x.Value == target)
   .Remove();

这就是您所需要的。

deleteQuery在没有为空列表中的第一个元素赋值的情况下返回空列表textbox@Shishir:查看我的编辑。虽然您的代码使用的名称与示例XML完全不同,而且您还没有解释您真正希望发生的事情,但很难为您提供帮助。@Shishir:现在情况有所好转,但您没有显示要删除的
元素。你让我很难帮助你。非常感谢……我更新了我的问题。它将是qry.Element(“site”).Remove()@Shishir:编辑了你的问题(你应该仔细看看预览版),它变得更清晰了。。。虽然你这么含糊其辞对自己没有帮助。
string target = txt.Text.Trim();
doc.Descendants("start")
   .Elements("site")
   .Where(x => x.Value == target)
   .Remove();