Ich lösche Element aus XML mit diesem Code unten;Nach dem Löschen eines Elements aus dem XML fügt XDocument am Ende eine Zeile hinzu
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());
}
vor dem Löschen des Elements mit Attribut "lname = name3";
<?xml version="1.0" encoding="utf-8"?>
<channelLists>
<channellist lname="name1" />
<channellist lname="name2" />
<channellist lname="name3" />
<channellist lname="name4" />
</channelLists>
nach dem Löschen;
<?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>
Was ist das Problem?
ich denke, das ist der Grund, aber diesmal bekomme ich "Zugriff verweigert" Warnung auf Debug. – user2542030
Schließen Sie den Stream, der zum Laden der vorhandenen XML-Datei verwendet wurde, bevor Sie die geänderte XML-Datei schreiben. – har07
Edit: Ich habe "stream4.Dispose();" Zeile nach "XDocument myXml2 = XDocument.Load (stream4);" und tat was @ har07 sagte, Problem gelöst. – user2542030