我正在尝试从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个节点,每次添加新节点时,必须删除最后一个节点。
答案 0 :(得分:2)
你可以试试这个
XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlNodeList nodes = doc.SelectNodes("/RecentFiles/File");
nodes[nodes.Count].ParentNode.RemoveChild(nodes[nodes.Count]);
doc.Save(fileName);
答案 1 :(得分:0)
听起来你想要这样的东西:
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...