• 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);//显示子节点点文本  
              }  
            } 

  • 相关阅读:
    redis在linux下的安装
    Redis在系统中的使用
    使用ServiceStackRedis操作redis
    Redis命令
    mongo增删改操作
    mongo c#驱动介绍操作
    LeetCode 19 删除链表的倒数第N个节点
    LeetCode 01 两数之和
    metapath2vec 笔记
    Q&A(一)
  • 原文地址:https://www.cnblogs.com/linyefeilyft/p/1657751.html
Copyright © 2020-2023  润新知