Je supprime un élément de xml avec ce code ci-dessous;Après la suppression d'un élément du fichier xml, XDocument ajoute une ligne à la fin
StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile MyFile = await localFolder.GetFileAsync("CustomTV.xml");
var stream4 = await MyFile.OpenStreamForReadAsync();
XDocument myXml2 = XDocument.Load(stream4);
myXml2.Element("channelLists")
.Elements("channellist")
.Where(x => (string)x.Attribute("lname") == lnameselectedText)
.Remove();
using (var stream = await (await ApplicationData.Current.LocalFolder.CreateFileAsync("CustomTV.xml", CreationCollisionOption.OpenIfExists)).OpenAsync(FileAccessMode.ReadWrite))
{
myXml2.Save(stream.AsStreamForWrite());
}
avant la suppression de l'élément avec l'attribut "lname = name3";
<?xml version="1.0" encoding="utf-8"?>
<channelLists>
<channellist lname="name1" />
<channellist lname="name2" />
<channellist lname="name3" />
<channellist lname="name4" />
</channelLists>
après la suppression;
<?xml version="1.0" encoding="utf-8"?>
<channelLists>
<channellist lname="name1" />
<channellist lname="name2" />
<channellist lname="name4" />
</channelLists>lname="name4"/> //It adds all the time this line with last elements attribute.
</channelLists>
Quel est le problème?
Je pense que c'est la raison, mais cette fois je reçois une alerte "accès refusé" sur le débogage. – user2542030
Fermez le flux qui était utilisé pour charger le fichier XML existant avant d'écrire le fichier XML modifié? – har07
Modifier: J'ai ajouté "stream4.Dispose();" ligne après "XDocument myXml2 = XDocument.Load (stream4);" et a fait ce que @ har07 a dit, problème résolu. – user2542030