从xml文件加载listview

墨GFX

知名会员
已加入
2013年2月2日
留言内容
142
编程经验
Beginner
您好,

我正在尝试从xml文件加载listview控件...我的代码似乎加载了一些项目,但不是所有项目.....这是代码...

string doc = "gowStats.xml";


            if (!File.Exists(doc))
            {
                MessageBox.Show("file doesnt exist");
            }
            else
            {
                try
                {
                   
                    using (XmlReader reader = XmlReader.Create("gowStats.xml"))
                    {
                        int index = 0;
                        
                        while (reader.Read())
                        {
                            switch (reader.Name)
                            {
                                case "Members":
                                    members = "";
                                    break;
                                case "Handle":
                                    member = reader.ReadString();
                                    xmlItem.Add(member);
                                    break;
                                case "Rank":
                                    rank = reader.ReadString();
                                    xmlItem.Add(rank);
                                    break;
                                case "Power":
                                    power = reader.ReadString();
                                    xmlItem.Add(power);
                                    break;
                                case "Cords":
                                    cords = reader.ReadString();
                                    xmlItem.Add(cords);
                                    break;
                                case "Loyalty":
                                    loyalty = reader.ReadString();
                                    xmlItem.Add(loyalty);
                                    break;


                            }
                           
                        }
                        //foreach (var item in xmlItem)
                        //{
                        //    MessageBox.Show(item);
                        //}
                        ListViewItem lvi = new ListViewItem(xmlItem[0]);
                       // listView1.Items.Add(lvi);


                        for (int i = 1; i < xmlItem.Count; i++)
                        {
                            lvi.SubItems.Add(xmlItem[i]);
                            listView1.Items.Add(lvi);
                        }
                      
                    }
                   
                    
                }
                catch 
                {
                    return;
                }
            }


这从xmlItem列表中加载了前几个项目...我使用消息框查看所有xml元素是否都已加载到列表中...它们是....所以我对此有些困惑工作..

感谢您的任何帮助

-着墨
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,498
地点
悉尼,澳大利亚
编程经验
10+
我的第一个猜测是会引发异常,但是在这种情况下,您要做的就是终止方法,那么您怎么知道?我建议至少将异常写出到“输出”窗口,以便您可以查看是否抛出异常以及异常是什么。将断点放在“返回”行上是一种很容易知道是否抛出异常的方法。
 

墨GFX

知名会员
已加入
2013年2月2日
留言内容
142
编程经验
Beginner
是的...我所做的只是归还....意思是要更改它并忘记它...问题已解决...另外我在错误的区域中使用了listview代码.. ....
我还有另一个问题可以帮您解决!

我想更新xml文件中的数据,但是我编写的代码不起作用....这是整个click事件方法

 private void cmdUpdate_Click(object sender, EventArgs e)        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load("gowStats.xml");


            //XmlNode member = xDoc.SelectSingleNode("Members\\Member");
            //XmlNode handle = xDoc.DocumentElement["Handle"];
            //XmlNode rank = xDoc.DocumentElement["Rank"];
            //XmlNode power = xDoc.DocumentElement["Power"];
            //XmlNode loyalty = xDoc.DocumentElement["Loyalty"];
            //XmlNode cords = xDoc.DocumentElement["Cords"];


            //handle.FirstChild.InnerText = txtMember.Text;
            //rank.FirstChild.InnerText = txtRank.Text;
            //power.FirstChild.InnerText = txtPower.Text;
            //loyalty.FirstChild.InnerText = txtLoyalty.Text;
            //cords.FirstChild.InnerText = txtCords.Text;


            XmlNodeList nodes = xDoc.SelectNodes("/Member");


            


            foreach (XmlNode n in nodes)
            {
                if (n.SelectSingleNode("/Handle").InnerText == txtMember.Text)
                {
                    n.SelectSingleNode("/Handle").InnerText = txtMember.Text;
                    n.SelectSingleNode("/Rank").InnerText = txtRank.Text;
                    n.SelectSingleNode("/Power").InnerText = txtPower.Text;
                    n.SelectSingleNode("/Loyalty").InnerText = txtLoyalty.Text;
                    n.SelectSingleNode("/Cords").InnerText = txtCords.Text;
                    MessageBox.Show(n.InnerText);
                }
                else
                    MessageBox.Show("Error!");
            }


          


            xDoc.Save("gowStats.xml");


            MessageBox.Show("Member Stats Updated Successfully! ", "Update Success",
                MessageBoxButtons.OK, MessageBoxIcon.Information);


            txtLoyalty.Text = "";
            txtCords.Text = "";
            txtMember.Text = "";
            txtPower.Text = "";
            txtRank.Text = "";


        }


该地区被评论是我的第一个景点。

感谢您的任何帮助

-着墨GFX
 
最佳 底部