C# XmlTextReader C的读写问题

C# XmlTextReader C的读写问题,c#,xml,wpf,C#,Xml,Wpf,因此,我试图通过使用C的XML类在我的WPF应用程序中创建一个最新的文件特性 基本上,程序需要读取每个节点并获取文件的URI以生成菜单项 问题是,r.Value并没有给我一个字符串来处理,我开始怀疑这段代码是否能正常工作 XmlTextReader r = new XmlTextReader(this.PathToSpecialFolder + @"\" + Application.CompanyName + @"\" + Application.ProductName + @"\Recent.

因此,我试图通过使用C的XML类在我的WPF应用程序中创建一个最新的文件特性

基本上,程序需要读取每个节点并获取文件的URI以生成菜单项

问题是,r.Value并没有给我一个字符串来处理,我开始怀疑这段代码是否能正常工作

XmlTextReader r = new XmlTextReader(this.PathToSpecialFolder + @"\" + Application.CompanyName + @"\" + Application.ProductName + @"\Recent.xml");

int count = 0;
while (r.Read())
{
    switch (r.NodeType)
                {
        case XmlNodeType.Element:
            if (r.Name == "Path")
            {
                count++;
                if (count <= 5)
                {
                    MenuItem m = new MenuItem() { Header = r.Value };
                    openRecentMenuItem.Items.Add(m);
                    //r.Value populates nothing
                }
            }
            break;
    }
}
r.Close();
在一个相关的主题上,我还尝试将它转换为XML文件只存储五个节点的位置。我想

获取我已经完成的节点数 检查新节点+节点计数是否>5,如果是,请预先添加新节点并删除最后一个节点。否则,只需添加新节点 如何删除最后一个节点?以下是我的XML文件结构:

<?xml version="1.0" encoding="utf-8"?>
<RecentFiles>
   <File>
      <Path>Path goes here.</Path>
    </File>
</RecentFiles>
更新:

下面的代码解决了我按照John的建议阅读的问题,但是,我仍然不知道如何在编写时删除最后一个节点。在这种情况下,我不喜欢使用Linq,因此首选使用XmlReader的解决方案,谢谢

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();

}

仅供参考,您不应使用新的XmlTextReader或XmlTextWriter。自.NET 2.0以来,它们一直被弃用。使用XmlReader.Create或XmlWriter.Create。另外,为什么不使用LINQ to XML?