我有以下格式的XML文件;
<root>
<entry>
<details>
</entry>
<entry>
<details>
</entry>
...
</root>
我没有任何属性,我在ListBox控件中显示详细信息字段,允许复制和删除项目。
因此,如果用户删除列表框中的第二个条目,则需要完全删除xml文件中的第二个条目。
有办法做到这一点吗?
目前,我正在使用Linq-to-XML来编写数据。
编辑:我忘了提及ListBox的选择模式 - 它是MultiExtended。
答案 0 :(得分:3)
这是加载的简单代码,删除索引条目,然后保存文件。
XElement root = XElement.Load(file);
root.Elements("entry").ElementAt(index).Remove();
root.Save(file);
匹配多个:
int[] match = new int[] { 1, 10, 25, 33 };
var matches = root.Elements("entry").Where((x, i) => match.Contains(i));
foreach (var e in matches.ToList()) e.Remove();
答案 1 :(得分:2)
这是一个非常宽松的定义,但以下应该有效:
// untested
var entries = xDoc.Root.Elements("entry").ToList();
entries[selectedIndex].Remove();
xDoc.Save(...);