c# - 在 C# 中从 XML 中删除所有子节点元素?

标签 c# xml visual-studio

<分区>

我有以下 XML 结构:

XML

<?xml version="1.0" encoding="utf-8" ?>
<Users>
</Users>

在某些时候,<Users>充满了不同的用户,但我希望能够在一个简单的函数中将它们全部删除。

尝试

/// <summary>
/// Removes all nodes from XML creds file on application close
/// </summary>
public static void RemoveXMLData()
{
    string xmlPath = Path.Combine(Environment.CurrentDirectory, @"Data\Credential.xml");
    XDocument document = XDocument.Load(xmlPath);
    document.RemoveNodes();
}

这似乎不起作用。我也做了以下事情:

尝试#2

        string xmlPath = Path.Combine(Environment.CurrentDirectory, @"Data\Credential.xml");
        XDocument document = XDocument.Load(xmlPath);

        foreach (var node in document.Descendants("Users"))
        {
            node.Remove();
        }

但这会产生异常错误。

归根结底,我只想回到原点,使用以下文件数据:

<?xml version="1.0" encoding="utf-8" ?>
<Users>
</Users>

最佳答案

这应该可以正常工作:

XDocument document = XDocument.Load(xmlPath);
document.Descendants("Users").Elements().Remove();

正如@Cory 所建议的,替代和更快的方法是:

document.Root.Elements().Remove();

关于c# - 在 C# 中从 XML 中删除所有子节点元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44930765/

相关文章:

c# - 可能是Visual Studio 2015中的C#编译器错误

c# - 具有字符串参数的构造函数和具有对象参数的相同重载

c# - 自定义 json contractresolver .net web api 在某些情况下回落到 camelcase

java - Jackson XML 反序列化、多态映射

php - XmlReader::next 在返回 false 时如何定位光标

visual-studio - Visual Studio 任务列表

c# - 使用带有相对路径的 OpenFileDialog 作为 initialDirectory

java - 如何获取xml中的标签名称

c# - 无法使用 IP 地址连接到应用程序

mysql - 备份问题