我有以下XML文件:
<HOUSE>
<LOCATION>Random</LOCATION>
<SERVER>A</SERVER>
<SERVER>B</SERVER>
<SERVER>C</SERVER>
<SERVER>D</SERVER>
<SERVER>E</SERVER>
<SERVER>F</SERVER>
</HOUSE>
我使用存储SERVER项目的ListBox
,我想添加一个从列表框和XML文件中删除所选项目的函数。
我尝试过使用:
doc.Element("HOUSE")
.Element("SERVER")
.Element(Serverslstbox.SelectedItem.ToString())
.Remove();
和
XmlElement root = doc.DocumentElement;
XmlNode remove= root.SelectSingleNode(Serverslstbox.SelectedItem.ToString());
doc.ParentNode.RemoveChild(remove);
以及许多其他选项,但它们似乎都不起作用,有什么建议吗?
答案 0 :(得分:0)
假设Serverslstbox.SelectedItem
包含服务器的名称,例如&#34; A&#34;,&#34; B&#34; ...
然后你需要使用Where
按照它们的值过滤元素:
doc.Element("HOUSE")
.Elements("SERVER")
.Where(x => x.Value == Serverslstbox.SelectedItem.ToString())
.Remove();
以上查询将删除所有&#34; SERVER&#34; &#34; HOUSE&#34;内的元素值等于所选项目值的元素。
要将结果保存到文件,请使用Save
方法,如下所示:
doc.Save(filename);