简体   繁体   English

C#从XML列表中删除项目

[英]C# Delete Item from XML List

i write some UWP app. 我写了一些UWP应用。 There i want to save/Update/Delete in a XML List. 我想在那里保存/更新/删除XML列表。 My XML List Looks like: 我的XML列表如下所示:

<?xml version="1.0" encoding="utf-8"?>
<rootnode>
    <Kunde Name="Testkunde" />
    <Kunde Name="Testkunde2" />
</rootnode>

If i want to remove a item with this code 如果我想用此代码删除项目

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(@"C:\Users\IT\source\repos\App3\App3");
StorageFile file = await folder.GetFileAsync("Kundenliste.xml");

using (IRandomAccessStream writeStream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
    Stream s = writeStream.AsStreamForWrite();
    XDocument doc = XDocument.Load(s);

    var q = from node in doc.Descendants("Kunde")
        let attr = node.Attribute("Name")
        where attr != null && attr.Value == "Testkunde"
        select node;

    q.ToList().ForEach(x => x.Remove());
    doc.Save(s);
}

This happens 有时候是这样的

<?xml version="1.0" encoding="utf-8"?>
<rootnode>
    <Kunde Name="Testkunde" />
  <Kunde Name="Testkunde2"  />
</rootnode><?xml version="1.0" encoding="utf-8"?>
<rootnode>
  <Kunde Name="Testkunde2" />
</rootnode>

anyone can help me? 有人可以帮助我吗?

Just set 刚设定

s.Position = 0;
s.SetLength(0);

after

Stream s = writeStream.AsStreamForWrite();
XDocument doc = XDocument.Load(s);

and it will works 它会起作用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM