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删掉了

 

转载于:https://www.cnblogs.com/kzai/archive/2012/05/05/Linq-to-xml.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值