• 操作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);
                
    
            }
  • 相关阅读:
    关于jQuery中click&live&on中的坑
    redis 主从配置和集群配置
    python 搭建redis集群
    事件冒泡及事件委托的理解(JQuery Dom操作)
    python中import和from-import的区别
    python中赋值-浅拷贝-深拷贝之间的关系
    学生管理系统.JavaScript
    学生管理系统.c
    电梯演讲与原型展示
    软件需求分析
  • 原文地址:https://www.cnblogs.com/wangcongsuibi/p/8920000.html
Copyright © 2020-2023  润新知