*編輯:好了,所以我要刪除的程序,行foreach (var elem in doc.Document.Descendants("Profiles"))
所需的「個人資料」來代替。但現在在我的XML文檔沒有爲每一個刪除一個空的簡檔元素,所以如果在XML實例中的所有項目(在問題的底部)被刪除我留下了這一點:*刪除從XML文檔中的元素,並節省了舊文件
<?xml version="1.0" encoding="utf-8"?>
<Profiles>
<Profile />
<Profile />
</Profiles>
=========================原來的問題BELOW ==================== =============
我用下面的代碼刪除一個元素,它是從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>
您是否嘗試過這個調試,使確定首先刪除了元素?也許沒有任何東西被刪除,你只是再次保存相同的確切文件? – Lochemage
這是八九不離十了什麼,我認爲是/正在發生的事情,我只是不與XML非常熟悉,知道如果我甚至做了適當地刪除。我會再次調試,看看我可以推導出什麼,但是我也會拋出一個來自問題中xml的例子,以及在這裏向社區明確什麼是錯誤的情況。 – DarthSheldon