*編集: OK、削除するプログラムを取得しました。その行にforeach (var elem in doc.Document.Descendants("Profiles"))
は代わりに「プロファイル」が必要でした。しかし、今私のXMLドキュメントには、削除されたそれぞれに対して空のプロファイル要素があるため、xmlの例(質問の一番下)のすべてのアイテムが削除された場合、私はこれが残っています: *
<?xml version="1.0" encoding="utf-8"?>
<Profiles>
<Profile />
<Profile />
</Profiles>
=========================以下の元の質問====================== ===========
次のコードを使用して要素を削除していますが、それは XML ファイルから子要素ですが、保存時にファイルから要素を削除していません。なぜこれが間違っているのか誰か教えてもらえますか?
public void DeleteProfile()
{
var doc = XDocument.Load(ProfileFile);
foreach (var elem in doc.Document.Descendants("Profiles"))
{
foreach (var attr in elem.Attributes("Name"))
{
if (attr.Value.Equals(this.Name))
elem.RemoveAll();
}
}
doc.Save(ProfileFile,
MessageBox.Show("Deleted Successfully");
}
編集: 以下の XML 形式の例
<?xml version="1.0" encoding="utf-8"?>
<Profiles>
<Profile Name="MyTool">
<ToolName>PC00121</ToolName>
<SaveLocation>C:\Users\13\Desktop\TestFolder1</SaveLocation>
<Collections>True.True.True</Collections>
</Profile>
<Profile Name="TestProfile">
<ToolName>PC10222</ToolName>
<SaveLocation>C:\Users\14\Desktop\TestFolder2</SaveLocation>
<Collections>True.False.False</Collections>
</Profile>
</Profiles>