如何在XML中删除最后一个节点?c#
本文关键字:最后一个 节点 删除 XML | 更新日期: 2023-09-27 18:06:01
我试图从XML文件中删除最后一个节点,但找不到任何好的答案。下面是我的代码:
XmlReader x = XmlReader.Create(this.PathToSpecialFolder + @"'" + Application.CompanyName + @"'" + Application.ProductName + @"'Recent.xml");
int c = 0;
while (x.Read())
{
if (x.NodeType == XmlNodeType.Element && x.Name == "Path")
{
c++;
if (c <= 10)
{
MenuItem m = new MenuItem() { Header = x.ReadInnerXml() };
m.Click += delegate
{
};
openRecentMenuItem.Items.Add(m);
}
}
}
x.Close();
我的XML节点结构如下…
<RecentFiles>
<File>
<Path>Text Path</Path>
</File>
</RecentFiles>
在我的情况下,最多有10个节点,每次添加一个新节点,最后一个节点必须删除。
你可以试试这个
XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlNodeList nodes = doc.SelectNodes("/RecentFiles/File");
nodes[nodes.Count].ParentNode.RemoveChild(nodes[nodes.Count]);
doc.Save(fileName);
听起来你想要这样做:
var doc = XDocument.Load(path);
var lastFile = doc.Descendants("File").LastOrDefault();
if (lastFile != null)
{
lastFile.Remove();
}
// Now save doc or whatever you want to do with it...