• 在C#中操作XML的例子


    这是一种很笨的方法,但可以帮助初学者了解访问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);//显示子节点点文本  
              }  
            }    


  • 相关阅读:
    leetcode-Minimum Path Sum
    第三十二章 自说明代码
    第三十一章 布局与风格
    第三十章 编程工具
    第二十九章 集成
    第二十八章 管理构建
    第二十五章 代码调整策略
    第二十六章 代码调整技术
    第二十七章 程序规模对构建的影响
    第二十四章 重构
  • 原文地址:https://www.cnblogs.com/tohen/p/705767.html
Copyright © 2020-2023  润新知