【发布时间】:2017-03-05 03:10:18
【问题描述】:
我希望删除然后将新节点/值添加到 Xml 文件中。
这是 Xml 内容的简化版本:
<?xml version="1.0" encoding="utf-8"?>
<NinjaTrader>
<OpenWorkspaces>
<OpenWorkspace>OldWorkspace1</OpenWorkspace>
<OpenWorkspace>OldWorkspace2</OpenWorkspace>
</OpenWorkspaces>
</NinjaTrader>
所以基本上我想删除 OpenWorkspaces 的所有子项:
<?xml version="1.0" encoding="utf-8"?>
<NinjaTrader>
<OpenWorkspaces>
</OpenWorkspaces>
</NinjaTrader>
然后我想添加新的节点和值。 “NewWorkspace1 到 NewWorkspace4”的值将来自一个字符串数组。
<?xml version="1.0" encoding="utf-8"?>
<NinjaTrader>
<OpenWorkspaces>
<OpenWorkspace>NewWorkspace1</OpenWorkspace>
<OpenWorkspace>NewWorkspace2</OpenWorkspace>
<OpenWorkspace>NewWorkspace3</OpenWorkspace>
<OpenWorkspace>NewWorkspace4</OpenWorkspace>
</OpenWorkspaces>
</NinjaTrader>
我想删除孩子然后创建新孩子的原因是因为我可能有与原始孩子不同的数量,如上面的示例所示。
所以我尝试使用“删除”开始:
var xdoc = XDocument.Load(myPath);
xdoc.XPathSelectElements("//OpenWorkspaces").Descendants("OpenWorkspace").Remove();
所做的就是这样:
<NinjaTrader>
<OpenWorkspaces />
</NinjaTrader>
我在 C# 方面相当胜任,但不是 Xml。我花了几个小时试验 XPath 扩展,但对结果有点失望。因此,非常欢迎朝着正确的方向前进。谢谢。
【问题讨论】: