Мне нужно удалить все элементы из моего файла XML, где узел Finished != ""
, но мой код удалить только первый пункт, где это условие истинноWP7 - Удалить несколько элементов Linq для XML
Мой код:
try
{
var file = IsolatedStorageFile.GetUserStoreForApplication();
XElement xElem;
using (IsolatedStorageFileStream read = file.OpenFile("tasks.xml", FileMode.Open))
{
xElem = XElement.Load(read);
}
var tasks = from task in xElem.Elements("Task")
where (string)task.Element("Finished") != ""
select task;
using (IsolatedStorageFileStream write = file.CreateFile("tasks.xml"))
{
foreach (XElement task in tasks)
{
task.Remove();
}
xElem.Save(write);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
NavigationService.GoBack();
}
Но если я заменил task.Remove();
на MessageBox
, он показывает мне окно с сообщением несколько раз, так как это правильно.
Что не так в моем коде?