zoukankan      html  css  js  c++  java
  • xml文件操作

    代码:

    代码
     //XmlDocument xd = new XmlDocument();
            
            
    ////判断文件是否存在
            //if (System.IO.File.Exists(Server.MapPath("xlm.xml")))
            
    //{
            
    //    //Response.Write("文件已存在");
            
    //    xd.Load(Server.MapPath("xlm.xml"));
            
    //}
            
    //else
            
    //{
            
    //    //创建xml版本 编码 文件是否独立
            
    //    XmlDeclaration xde;
            
    //    xde = xd.CreateXmlDeclaration("1.0", "utf-8", null);
            
    //    xd.AppendChild(xde);
            
    //    //声明根节点
            
    //    XmlElement et = xd.CreateElement("Root");
            
    //    xd.AppendChild(et);

            
    //}

            
    //插入一个节点
           
    // XmlNode root = xd.SelectSingleNode("Root");
           
    // XmlElement et1 = xd.CreateElement("Tree");
           
    // et1.SetAttribute("id", "1");
           
    // et1.SetAttribute("text", "类型");

           
    // XmlElement et2 = xd.CreateElement("tow");
           
    // et2.InnerText = "第二节";
           
    // et1.AppendChild(et2);
           //// et1.InnerText = "类型";
           // root.AppendChild(et1);

            
    //修改节点
            
    //XmlNodeList nodelist = xd.SelectSingleNode("Root").ChildNodes;
            
    //int i = 0;
            
    //foreach (XmlNode xn in nodelist)
            
    //{
            
    //    XmlElement et3 = (XmlElement)xn;
            
    //    et3.SetAttribute("id", i.ToString());
            
    //    i++;
            
    //}
            
            
    //保存xml文件
            
    //xd.Save(Server.MapPath("xlm.xml"));

            
    //XmlNodeList xnl = xd.SelectSingleNode("Root").ChildNodes;
            
    //foreach (XmlNode xn in xnl)
            
    //{
            
    //    XmlElement xe = (XmlElement)xn;
            
    //    Console.WriteLine(xe.GetAttribute("id"));
            
    //    Console.WriteLine(xe.GetAttribute("text"));
            
    //    XmlNodeList xnl2 = xe.ChildNodes;
            
    //    foreach (XmlNode xn1 in xnl2)
            
    //    {
            
    //        Console.WriteLine(xn1.InnerText);
            
    //    }
            
    //

    创建新XML文件

    using System.Xml;

    XmlDocument xd = new XmlDocument();
            XmlDeclaration xde;
            xde = xd.CreateXmlDeclaration("1.0", "utf-8", null);
            xd.AppendChild(xde);
            XmlElement et = xd.CreateElement("Root");
            xd.AppendChild(et);
            XmlNode root = xd.SelectSingleNode("Root");
            XmlElement et1 = xd.CreateElement("Tree");
            et1.SetAttribute("id", "0");
            et1.InnerText = "类型";
            root.AppendChild(et1);
            if (!System.IO.File.Exists(Server.MapPath("xlm.xml")))
            {
                Response.Write("文件已存在");
            }
            else
            {
     xd.Save(Server.MapPath("xlm.xml"));
            }
          

    以下拷贝未试
      已知有一个XML文件(bookstore.xml)如下:  
      <?xml   version="1.0"   encoding="gb2312"?>  
      <bookstore>  
          <book   genre="fantasy"   ISBN="2-3631-4">  
              <title>Oberon's   Legacy</title>  
              <author>Corets,   Eva</author>  
              <price>5.95</price>  
          </book>  
      </bookstore>  
         
      1、往<bookstore>节点中插入一个<book>节点:  
            XmlDocument   xmlDoc=new   XmlDocument();  
            xmlDoc.Load("bookstore.xml");  
            XmlNode   root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>  
            XmlElement   xe1=xmlDoc.CreateElement("book");//创建一个<book>节点  
            xe1.SetAttribute("genre","李赞红");//设置该节点genre属性  
            xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性  
         
            XmlElement   xesub1=xmlDoc.CreateElement("title");  
            xesub1.InnerText="CS从入门到精通";//设置文本节点  
            xe1.AppendChild(xesub1);//添加到<book>节点中  
            XmlElement   xesub2=xmlDoc.CreateElement("author");  
            xesub2.InnerText="候捷";  
            xe1.AppendChild(xesub2);  
            XmlElement   xesub3=xmlDoc.CreateElement("price");  
            xesub3.InnerText="58.3";  
            xe1.AppendChild(xesub3);  
         
            root.AppendChild(xe1);//添加到<bookstore>节点中  
            xmlDoc.Save("bookstore.xml");  
      //===============================================  
      结果为:  
      <?xml   version="1.0"   encoding="gb2312"?>  
      <bookstore>  
          <book   genre="fantasy"   ISBN="2-3631-4">  
              <title>Oberon's   Legacy</title>  
              <author>Corets,   Eva</author>  
              <price>5.95</price>  
          </book>  
          <book   genre="李赞红"   ISBN="2-3631-4">  
              <title>CS从入门到精通</title>  
              <author>候捷</author>  
              <price>58.3</price>  
          </book>  
      </bookstore>  
         
      2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“

    亚胜”。  
              XmlNodeList   nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点  
            foreach(XmlNode   xn   in   nodeList)//遍历所有子节点  
            {  
              XmlElement   xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型  
              if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”  
              {  
                xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”  
         
                XmlNodeList   nls=xe.ChildNodes;//继续获取xe子节点的所有子节点  
                foreach(XmlNode   xn1   in   nls)//遍历  
                {  
                  XmlElement   xe2=(XmlElement)xn1;//转换类型  
                  if(xe2.Name=="author")//如果找到  
                  {  
                    xe2.InnerText="亚胜";//则修改  
                    break;//找到退出来就可以了  
                  }  
                }  
                break;  
              }  
            }  
         
            xmlDoc.Save("bookstore.xml");//保存。  
      //==================================================  
      最后结果为:  
      <?xml   version="1.0"   encoding="gb2312"?>  
      <bookstore>  
          <book   genre="fantasy"   ISBN="2-3631-4">  
              <title>Oberon's   Legacy</title>  
              <author>Corets,   Eva</author>  
              <price>5.95</price>  
          </book>  
          <book   genre="update李赞红"   ISBN="2-3631-4">  
              <title>CS从入门到精通</title>  
              <author>亚胜</author>  
              <price>58.3</price>  
          </book>  
      </bookstore>  
         
      3、删除   <book   genre="fantasy"   ISBN="2-3631-4">节点的genre属性,删除   <book   genre="update李赞红"  

    ISBN="2-3631-4">节点。  
      XmlNodeList   xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;  
         
            foreach(XmlNode   xn   in   xnl)  
            {  
              XmlElement   xe=(XmlElement)xn;  
              if(xe.GetAttribute("genre")=="fantasy")  
              {  
                xe.RemoveAttribute("genre");//删除genre属性  
              }  
              else   if(xe.GetAttribute("genre")=="update李赞红")  
              {  
                xe.RemoveAll();//删除该节点的全部内容  
              }  
            }  
            xmlDoc.Save("bookstore.xml");  
      //===========================================  
      最后结果为:  
      <?xml   version="1.0"   encoding="gb2312"?>  
      <bookstore>  
          <book   ISBN="2-3631-4">  
              <title>Oberon's   Legacy</title>  
              <author>Corets,   Eva</author>  
              <price>5.95</price>  
          </book>  
          <book>  
          </book>  
      </bookstore>  
         
      4、显示所有数据。  
            XmlNode   xn=xmlDoc.SelectSingleNode("bookstore");  
         
            XmlNodeList   xnl=xn.ChildNodes;  
             
            foreach(XmlNode   xnf   in   xnl)  
            {  
              XmlElement   xe=(XmlElement)xnf;  
              Console.WriteLine(xe.GetAttribute("genre"));//显示属性值  
              Console.WriteLine(xe.GetAttribute("ISBN"));  
         
              XmlNodeList   xnf1=xe.ChildNodes;  
              foreach(XmlNode   xn2   in   xnf1)  
              {  
                Console.WriteLine(xn2.InnerText);//显示子节点点文本  
              }  
            } 

  • 相关阅读:
    day7 面向对象 静态方法 类方法 属性方法 类的特殊成员方法 元类 反射 异常处理
    day6 面向对象 封装 继承 多态 类与实例在内存中的关系 经典类和新式类
    day5 time datetime random os sys shutil json pickle shelve xml configparser hashlib subprocess logging re正则 python计算器
    kafka常用操作命令
    linux基础
    django学习1——初识web应用程序
    mysql数据库(三)——pymysql模块
    mysql数据库(二)——表的查询
    mysql数据库(一)
    Python常用模块——re模块
  • 原文地址:https://www.cnblogs.com/linyefeilyft/p/1657751.html
Copyright © 2011-2022 走看看