【发布时间】:2017-07-05 15:46:01
【问题描述】:
我有以下 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>
【问题讨论】:
-
只烤一个新鲜的?
new XDocument(new XElement("Users")); -
您在发布问题之前尝试过搜索吗?检查this SO
-
Users是 XML 中的唯一节点吗?如果是这样,您为什么不使用带有空用户节点的新 XDocument 来覆盖文件? -
您是否希望调用
RemoveNodes()将文件保存回磁盘?不清楚您所说的“似乎不起作用”是什么意思。 -
@JonSkeet 好的,好点。这通过调用 save 方法来修复它。谢谢
标签: c# xml visual-studio