1

次の形式の XML ファイルがあります。

<root>

<entry>
<details>
</entry>

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

属性はなく、アイテムのコピーと削除を可能にする ListBox コントロールに詳細フィールドを表示します。

そのため、ユーザーがリストボックスの 2 番目のエントリを削除した場合、xml ファイルの 2 番目のエントリを完全に削除する必要があります。

これを行う方法はありますか?

現在、データの書き込みに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 に答える