http://www.aygfsteel.com/ebecket 返還網
          隨筆-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>節點中插入一個<book>節點

          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");//創建一個<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></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></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);
          //顯示子節點點文本   
              }   
          }   


          參考資料來源:
          http://www.yongfa365.com/item/CZhongCaoZuoXMLWenJianDuXieGaiShanQuanJieChuGenQiTaYuYanCaoZuoXMLChaBuDuoYiYang.html
          posted on 2010-03-22 11:18 becket_zheng 閱讀(359) 評論(0)  編輯  收藏 所屬分類: 網頁web前端技術C#
          主站蜘蛛池模板: 昔阳县| 沁水县| 龙岩市| 漳浦县| 汝阳县| 丰都县| 四平市| 江孜县| 台中县| 广宁县| 安阳市| 凌海市| 襄樊市| 独山县| 恭城| 铁岭县| 泰宁县| 揭东县| 和田市| 岚皋县| 进贤县| 治县。| 道真| 彭阳县| 雅江县| 天等县| 济宁市| 伊宁县| 唐海县| 江津市| 长汀县| 大理市| 瑞丽市| 正阳县| 涪陵区| 黑水县| 南投县| 徐水县| 长葛市| 麦盖提县| 东丰县|