C# 从Xml C中删除选定的树节点#
我正在使用C#处理Winform,我已经从XML填充了Treeview,需要删除Treeview所选节点(运行时)。删除事件:C# 从Xml C中删除选定的树节点#,c#,xml,treeview,C#,Xml,Treeview,我正在使用C#处理Winform,我已经从XML填充了Treeview,需要删除Treeview所选节点(运行时)。删除事件: TreeNode node = treeView1.SelectedNode; if (treeView1.SelectedNode != null) { if (treeView1.SelectedNode.Parent == null) treeView1.SelectedNode.Remove(); else if (treeVie
TreeNode node = treeView1.SelectedNode;
if (treeView1.SelectedNode != null)
{
if (treeView1.SelectedNode.Parent == null)
treeView1.SelectedNode.Remove();
else if (treeView1.SelectedNode.Parent.Nodes.Count == 1)
treeView1.SelectedNode.Parent.Remove();
else
treeView1.SelectedNode.Remove();
}
XDocument doc = XDocument.Load("menu.xml");
var xElement = (from q in doc.Elements("root")
where q.Attribute("quick").Value == node.Tag.ToString()
select q);
foreach (var a in xElement)
a.Remove();
doc.Save("menu.xml");
其中,我的XML文件是:
<?xml version="1.0" encoding="utf-8"?>
<root>
<quick title="1st Node" />
</root>
我了解到,从上面的xml中,您想要删除Node:quick。试试这个:
doc.Root.Descendants("quick").FirstOrDefault().Remove();
如果只有一个“快速”节点,则此操作有效
但是可以有多个“快速”节点,因此要在xml中匹配所选节点,需要将该节点的唯一属性值与所选节点的相同属性值匹配
doc.Root.Descendants("quick")
.First(x => x.Attribute("title").Value == node.Tag["title"].Tostring())
.Remove();
您当前的代码有什么问题吗?非常感谢Deepti…:)