1. 程式人生 > >C# XML 新增,修改,刪除Xml節點

C# XML 新增,修改,刪除Xml節點

 //新增xml節點
    private void AddXml(string image, string title) 
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("../flash/dati.xml"));
        XmlNode root = xmlDoc.SelectSingleNode("images");//查詢<images>
        XmlElement xe1 = xmlDoc.CreateElement("thumb");//建立一個<thumb>節點
        xe1.SetAttribute("displayNum", "6");//設定該節點displayNum屬性
        xe1.SetAttribute("separation", "5");//設定該節點separation屬性
        XmlElement xesub1 = xmlDoc.CreateElement("image");
        xesub1.InnerText = image;//設定文字節點
        xe1.AppendChild(xesub1);//新增到thumb節點中
        XmlElement xesub2 = xmlDoc.CreateElement("description");
        xesub2.InnerText = title;
        xe1.AppendChild(xesub2);
        root.AppendChild(xe1);//新增到<images>節點中
        xmlDoc.Save(Server.MapPath("../flash/dati.xml"));
    }
 
 
   //刪除節點內容
    private void DelXml(string image)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("../flash/dati.xml"));

        XmlNodeList xnl = xmlDoc.SelectSingleNode("images").ChildNodes; //查詢節點
        
        foreach (XmlNode xn in xnl)
        {
            XmlElement xe = (XmlElement)xn;
            if (xe.InnerText.IndexOf(image,0) >= 0)
            {
                xn.ParentNode.RemoveChild(xn);
               // xn.RemoveAll();
            }
        }
        xmlDoc.Save(Server.MapPath("../flash/dati.xml"));
    }
 
   //修改
   foreach(XmlNode xn in nodeList)//遍歷所有子節點
   {
    XmlElement xe=(XmlElement)xn;//將子節點型別轉換為XmlElement型別
    if(xe.GetAttribute("genre")=="")// 判讀條件
    {
     xe.SetAttribute("genre",newStr);//則修改該屬性為newstr 
     XmlNodeList nls=xe.ChildNodes;//繼續獲取xe子節點的所有子節點
     foreach(XmlNode xn1 in nls)//遍歷
     {
      XmlElement xe2=(XmlElement)xn1;//轉換型別
      if(xe2.Name=="author")//如果找到 //判讀條件
      {
       xe2.InnerText=newText;//則修改 
       break;//找到退出來就可以了
      }
     }
     break;
    }