首先我想再次提及我的平台是Windows 商店应用程序(因为有些用户认为我在谈论桌面环境并将我的问题作为重复的主题关闭)。我有一个 xml 文档,我通过以下方法删除了一个元素:
public async void DeleteDocument(Word deletedItem)
{
StorageFile storageFile = await _fileloc.StorageFile();
var file = await storageFile.OpenAsync(FileAccessMode.ReadWrite);
Stream inStream = file.AsStreamForWrite();
XDocument xDoc = XDocument.Load(inStream);
xDoc.Descendants("Word").Single(p =>((Guid)p.Element("Id")).Equals(deletedItem.Id)).Remove();
xDoc.Save(inStream);
}
元素已成功删除,但是当我保存 xDocument 时,新的 xDocument 会像这样附加到最后的 xml 文件中
<XML ....>
<Word id="1">
<Item x="...."/>
<Item x="...."/>
</Word>
<Word id="2">
<Item x="...."/>
<Item x="...."/>
</Word>
</XML><XML ....>
<Word Id="2">
<Item x="...."/>
<Item x="...."/>
</Word>
</XML>
请给我建议并感谢您的帮助。
更新:
在吉姆奥尼尔建议后,保存的文件就像
<XML ....>
<Word id="1">
<Item x="...."/>
<Item x="...."/>
</Word>
x="...."/>
<Item x="...."/>
</Word>
</XML>