zoukankan      html  css  js  c++  java
  • 操作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);
                
    
            }
  • 相关阅读:
    .NET自带控件 ································
    FCKeditor 2.2 + Asp.Net 设置
    . Net 2.0 实现动态切换首页图片···················
    按月统计的问题,即数据中没有该月的数据,该月的数据显示为0
    Active Directory如何用C#进行增加、删除、修改、查询用户与组织单位!
    GridView 的排序 !!
    利用GridView显示主细表并一次编辑明细表所有数据的例子 !!【转自孟子e章】
    [翻译]使用ASP.NET2.0的ReportViewer查看RDLC报表 !!!
    opengl 教程(20) 点光源
    每个程序员都应该了解的内存知识(1)
  • 原文地址:https://www.cnblogs.com/wangcongsuibi/p/8920000.html
Copyright © 2011-2022 走看看