C#中操做xml文件(插入節點、修改、刪除)

已知有一個xml文件(bookstore.xml)以下: <?xml version="1.0" encoding="gb2312"?> <bookstore> <book genre="fantasy" ISBN="2-3631-4"> <title>Oberon's Legacy</title> <author>。
 

已知有一個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>   
      
  一、往<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>   
      
  二、修改節點:將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>   
      
  三、刪除   <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>   
      
  四、顯示全部數據。   
        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);//顯示子節點點文本   
          }   
        }    html

[責任編輯:qqread.com/巧巧豆]node

相關文章:VC++中利用MSXML解析XML文檔web

這種對象模型實現的基本功能包括:·描述文檔表示和操做的接口; · 接口的行爲和屬性;· 接口之間的關係以及互操做。1、 xml 簡介XML(Xtensible Markup Language,即擴展標記語言)的發展起源於1996年。DTD和XML大綱規定了XML文件的邏輯結構,定義了XML文件中的元素、元素的屬性以及元素與元素屬性之間的關係。spa

相關文章
相關標籤/搜索