我有一个xml配置文件,我试图从中删除一个节点。我的xml文档如下
<appSettings>
<add key="value1" value="27348614" />
<add key="value2" value="123432" />
<add key="removeMe" value="removeMeAsWell" />
</appSettings>
我尝试过以下方法
public void removeNode(XDocument AppStoreXML, string FOPath)
{
var newElement = new XElement("add",
new XAttribute("key","removeMe" ),
new XAttribute("value", "removeMeAsWell"));
AppStoreXML.Root.Descendants("appSettings")
.First(s => s.Attribute("key").Value == "removeMe")
.Remove(); //this returns the error Sequence contains no matching element
//newElement.Remove(); this try returns no matching parent
AppStoreXML.Save(FOPath);
}
任何人都知道我做错了什么?
答案 0 :(得分:2)
这是问题所在:
AppStoreXML.Root.Descendants("appSettings")
您正在尝试查找 appSettings
的后代元素,它们也是名为 appSettings
并具有指定的属性。您想要add
元素:
AppStoreXML.Root.Descendants("add")
此外,您可能希望将First()
更改为Where
- 这样您就可以找到要删除的多个元素。