C#使用Linq查询,修改,删除XML文件

首先放上我的XML文件



 
    12345
    1234567
 

  设备34
  设备2
  设备3

查询方法:

              // 定义一个泛型集合来储存查询结果

             List mylist = new List();

             // 加载xml文件

             XElement doc = XElement.Load("Test.xml");
            // 使用linq查询语句 from查询 in查询目标 select 查询结果 结果为XELment的集合
            IEnumerable xe = from node in doc.Descendants("userName")
                                       select node;

              foreach (XElement item in xe)
            {
                mylist.Add(item.Value);
            }

          // 可以使用combox显示  combox.DataSource = mylist;

通过查找对应属性节点   

 XElement doc = XElement.Load("Test.xml");
            IEnumerable xe = from node in doc.Descendants("userName")
                                       where node.Attribute("ID").Value == "user"
                                       select node;

            foreach (var item in xe)
            {
                label1.Text = item.Value;
            }

删除一个节点

  XElement doc = XElement.Load("Test.xml");
            IEnumerable xe = from node in doc.Descendants("userName")
                                       where node.Attribute("ID").Value == "Op"
                                       select node;
            xe.Remove();
            doc.Save("Test.xml");

 

修改一个节点值

 XElement doc = XElement.Load("Test.xml");
            //  XElement UserName = ;
            IEnumerable xe = from node in doc.Descendants("MachineName")
                                       where node.Value=="设备1"
                                       select node;

            foreach (var item in xe)
            {
                item.Value = "设备34";
            }
            doc.Save("Test.xml");

添加新节点

 XElement doc = XElement.Load("Test.xml");
          
            IEnumerable xe = from node in doc.Descendants("MachineName")
                                       where node.Value == "设备17"
                                       select node;
            if (xe.Count()!=0)  // 判断是否已经有了
            {
                return;
            }
            XElement add = new XElement("MachineName");
            add.SetAttributeValue("ID", "17");
            add.Value = "设备17";
            doc.Add(add);
            doc.Save("Test.xml");

你可能感兴趣的:(C#)