操作XML树--增删改

1.添加元素到XML树

  Add()  ,在当前子节点末添加内容

  AddFirst()  ,在第一个子节点之前添加内容

  AddAfterSelf() ,在当前节点后面添加内容

  AddBeforeSelf()  ,当前节点前面添加内容

2.移除XML树的元素和属性

 RemoveAll()  ,移除所有属性和子元素

 RemoveAttribnutes(),移除所有属性

 SetAttributeValue() ,增删改指定属性的值

 SetElementValue(), 增删改指定子元素的值

3.补充,XNode.Remove()  ,将当前节点从父节点中移除,

             Extensions.Remove()   ,将集合中的所有节点从它们的父节点中移除。

 static void AddElement() {
//            //创建一个简单的xml数据
//            string xmlData = @"<Root>
//                               <ItemList1>
//                               <Item1 />
//                               <Item2 />
//                               </ItemList1>
//                              ";
//            //写入到临时文件
//            File.WriteAllText("tmpData.xml", xmlData);
//            XElement root = XElement.Load("tmpData.xml",LoadOptions.SetLineInfo);
            XElement root = XElement.Load("F:\\XML\\siren.XML");
            XElement ele1 = root.Element("body");
            XElement ele0 = new XElement("ItemList0");
            ele0.Add(new XElement("Item02"));
            ele0.AddFirst(new XElement("Item01"));//在当前节点的第一个节点之前添加数据
            ele0.Add(new XElement("Item03"), new XElement("Item04"));
            ele1.AddBeforeSelf(ele0);//用于在当前节点之前添加内容
            XElement ele4 = new XElement("ItemList4");
            IEnumerable<XElement> elelist = from e in ele1.Elements()
                                            select e;
            ele4.AddFirst(elelist);
            ele1.AddAfterSelf(ele4);
            ele1.AddAfterSelf(new XElement("ItemList2"), new XElement("ItemList3"));//当前节点后面添加内容
            //Console.WriteLine(root);

            //root.RemoveAttributes();//移除掉所有属性,但是不包括子元素的属性,,及最外层的属性
            //root.RemoveAll();         //移除掉所有的子元素和属性
            //root.RemoveNodes();         //移除所有子节点
            XElement ele = root.Element("body");//选中某个节点,给某个节点添加属性
            ele.SetAttributeValue("age", "23");
            ele.SetElementValue("Name",null);//移除单个的子元素的值,多个的情况下移除第一个
            ele.SetElementValue("Name1", "330"); //添加子元素.    
            XElement ele2 = ele.Element("Name1");
            ele2.SetAttributeValue("name", "校长");
            ele2.SetAttributeValue("Age", "56");
            var lit0 = from xl in root.Elements("ItemList0")//查询到某个节点集合
                       select xl;
            //foreach (var item in lit0)
            //{
            //    Console.WriteLine(item);
            //}
            lit0.Remove();//将该节点从父元素下全部移除
            XElement ele11 = root.Element("ItemList2");//移除单个节点,不管父节点是谁
            ele11.Remove();
            
            Console.WriteLine(root);
            

        }

猜你喜欢

转载自www.cnblogs.com/wangcongsuibi/p/8920000.html