1

我有以下格式的 XML 文件;

<root>

<entry>
<details>
</entry>

<entry>
<details>
</entry>
...
</root>

我没有任何属性,我在允许复制和删除项目的 ListBox 控件中显示详细信息字段。

因此,如果用户删除列表框中的第二个条目,则需要完全删除 xml 文件中的第二个条目。

有没有办法做到这一点 ?

目前,我正在使用 Linq-to-XML 来编写数据。

编辑:我忘了提到 ListBox 的选择模式——它是 MultiExtended。

4

2 回答 2

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();
于 2012-05-29T15:33:49.880 回答
2

这是一个非常宽松的定义,但以下应该可以工作:

// untested
var entries = xDoc.Root.Elements("entry").ToList();
entries[selectedIndex].Remove();
xDoc.Save(...);
于 2012-05-29T15:24:52.833 回答