http://www.aygfsteel.com/ebecket 返還網(wǎng)
          隨筆-140  評論-11  文章-131  trackbacks-0

          已知有一個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>節(jié)點中插入一個<book>節(jié)點

          XmlDocument xmlDoc = new XmlDocument();   
          xmlDoc.Load(
          "bookstore.xml");   
          //xmlDoc.LoadXml("<!--l version=\"1.0\" encoding=\"gb2312\--><BOOKSTORE></BOOKSTORE>");   
          XmlNode root = xmlDoc.SelectSingleNode("bookstore");//查找<BOOKSTORE></BOOKSTORE>   
          XmlElement xe1 = xmlDoc.CreateElement("book");//創(chuàng)建一個<BOOK></BOOK>節(jié)點   
          xe1.SetAttribute("genre""李贊紅");//設置該節(jié)點genre屬性   
          xe1.SetAttribute("ISBN""2-3631-4");//設置該節(jié)點ISBN屬性   
            
          XmlElement xesub1 
          = xmlDoc.CreateElement("title");   
          xesub1.InnerText 
          = "CS從入門到精通";//設置文本節(jié)點   
          xe1.AppendChild(xesub1);//添加到<BOOK></BOOK>節(jié)點中   
          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></BOOKSTORE>節(jié)點中   
          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.修改節(jié)點:將genre屬性值為“李贊紅“的節(jié)點的genre值改為“update李贊紅”,將該節(jié)點的子節(jié)點<author>的文本修改為“亞勝”。

          XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;//獲取bookstore節(jié)點的所有子節(jié)點   
          foreach (XmlNode xn in nodeList)//遍歷所有子節(jié)點   
          {   
              XmlElement xe 
          = (XmlElement)xn;//將子節(jié)點類型轉換為XmlElement類型   
              if (xe.GetAttribute("genre"== "李贊紅")//如果genre屬性值為“李贊紅”   
              {   
                  xe.SetAttribute(
          "genre""update李贊紅");//則修改該屬性為“update李贊紅”   
            
                  XmlNodeList nls 
          = xe.ChildNodes;//繼續(xù)獲取xe子節(jié)點的所有子節(jié)點   
                  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">節(jié)點的genre屬性,刪除 <book genre="update李贊紅" ISBN="2-3631-4">節(jié)點。
          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();
          //刪除該節(jié)點的全部內(nèi)容   
              }   
          }   
          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、顯示所有數(shù)據(jù)。
          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);
          //顯示子節(jié)點點文本   
              }   
          }   


          參考資料來源:
          http://www.yongfa365.com/item/CZhongCaoZuoXMLWenJianDuXieGaiShanQuanJieChuGenQiTaYuYanCaoZuoXMLChaBuDuoYiYang.html
          posted on 2010-03-22 11:18 becket_zheng 閱讀(360) 評論(0)  編輯  收藏 所屬分類: 網(wǎng)頁web前端技術C#
          主站蜘蛛池模板: 盐山县| 荥阳市| 平安县| 会泽县| 万盛区| 衡阳市| 施秉县| 汉沽区| 理塘县| 洛浦县| 宁化县| 佛山市| 富宁县| 临城县| 绥棱县| 平潭县| 古田县| 桐柏县| 封开县| 渑池县| 金溪县| 梨树县| 松江区| 石家庄市| 新源县| 融水| 龙川县| 永定县| 冀州市| 绥江县| 启东市| 东源县| 孟连| 图们市| 牙克石市| 宁乡县| 新疆| 永嘉县| 光泽县| 神农架林区| 英德市|