【问题标题】:C# Delete Item from XML ListC# 从 XML 列表中删除项目
【发布时间】:2018-03-16 14:41:15
【问题描述】:

我编写了一些 UWP 应用程序。我想在 XML 列表中保存/更新/删除。我的 XML 列表如下所示:

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

如果我想使用此代码删除项目

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);
}

发生这种情况

<?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>

谁能帮帮我?

【问题讨论】:

标签: c# xml list uwp


【解决方案1】:

设置好了

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

之后

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

它会起作用的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2011-03-18
    相关资源
    最近更新 更多