Mus*_*fiq 5 c# xml linq-to-xml xml-parsing
你好我有一个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>
Run Code Online (Sandbox Code Playgroud)
现在我需要删除任何<site>...</site>和值将从文本框中随机给出.
这是我的代码:
XDocument doc = XDocument.Load(@"AddedSites.xml");
var deleteQuery = from r in doc.Descendants("start") where r.Element("site").Value == txt.Text.Trim() select r;
foreach (var qry in deleteQuery)
{
qry.Element("site").Remove();
}
doc.Save(@"AddedSites.xml");
Run Code Online (Sandbox Code Playgroud)
如果我将第一个元素的值放在文本框中,那么它可以删除它,但如果我放置除第一个元素值之外的任何元素值,它就无法删除!我需要我将任何元素的任何值...因为它可以是第二元素或第三或第四等等......任何人都可以帮助我吗?提前致谢!
Jon*_*eet 12
编辑:好的,有进一步的编辑,它更清晰,你想要做什么,因为它发生很容易显著比你正在做的,感谢Remove扩展方法上IEnumerable<T> where T : XNode:
string target = txt.Text.Trim();
doc.Descendants("start")
.Elements("site")
.Where(x => x.Value == target)
.Remove();
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的.