Linq to XML

额,首先当然是创建XML了(新手要照着敲代码啊)

            XDocument xdoc = new XDocument();//document是文档的意思,XDocument XML的文档(文件),这句话就是创建一个xml文件(在内存中,不是在你的c,d..盘上)
            XElement xroot = new XElement("Root");//创建一个根节点,名字Root无所谓,你可以随便起个
            xdoc.Add(xroot);//一个XML只有一个根
            for (int i = 0; i < 3; i++)
            {
                XElement xPerson = new XElement("Person");//创建Person
                xroot.Add(xPerson);//将Person加到Root的下一层节点
                XElement xName = new XElement("Name", "小小" + i.ToString());//创建Name
                XElement xAge = new XElement("Age", 20 + i);//创建Age
                XElement xTel = new XElement("Tel", "1351222222" + i.ToString());//创建电话号码
                xPerson.Add(xName);//将Name加入Person
                xPerson.Add(xAge);//将Age加入Person
                xPerson.Add(xTel);//将Tel加入Person
            }
            using (FileStream fs = File.OpenWrite("D:\\person.xml"))
            {
                xdoc.Save(fs);//将内存中的xml文档通过流写入磁盘D:\erson.xml文件中
            }

 

 这个是结果

查询XML

            XDocument xdoc = XDocument.Load("D:\\person.xml");
            var xresult = from x in xdoc.Descendants("Person")
                          select new
                          {
                              名字 = x.Element("Name").Value,
                              年龄 = x.Element("Age").Value,
                              号码 = x.Element("Tel").Value
                          };
            dataGridView1.DataSource = xresult.ToList();

 

 

向XML中增加数据

XDocument xdoc = XDocument.Load("D:\\person.xml");
            XElement xroot = xdoc.Root;
            XElement xperson = new XElement("Person",
                new XElement("Name", "大大"),
                new XElement("Age", 22),
                new XElement("Tel", "13111111111"));
            xroot.Add(xperson);
            using (FileStream fs = File.OpenWrite("D:\\person.xml"))
            {
                xdoc.Save(fs);
            }

 结果

修改XML中的数据

            XDocument xdoc = XDocument.Load("D:\\person.xml");
            var xresult = from x in xdoc.Descendants("Person")
                          where x.Element("Age").Value == "22"
                          select x;
            foreach (var xr in xresult)
            {
                xr.Element("Age").Value = "23";
            }
            using (FileStream fs = File.OpenWrite("D:\\person.xml"))
            {
                xdoc.Save(fs);
            }

结果: 

把22岁的人都修改为23岁了

删去XML的数据

            XDocument xdoc = XDocument.Load("D:\\person.xml");
            var xresult = from x in xdoc.Descendants("Person")
                          where x.Element("Name").Value == "大大"
                          select x;
            xresult.Remove();
            xdoc.Save("D:\\person.xml");

 结果

  把名字叫大大的Person删掉了

 

posted on 2012-05-05 23:56  程序员喵喵  阅读(908)  评论(0)    收藏  举报

导航