C#中 添加 刪除 查找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"));
    }
 
public void WriteXml(string FileName, string name, string age, string sex)
    {
        //初始化XML文檔操作類
        XmlDocument myXml = new XmlDocument();

        //加載指定的XML文件
        myXml.Load(FileName);

        //添加元素-姓名
        XmlElement ele0 = myXml.CreateElement("name");
        XmlText Text0 = myXml.CreateTextNode(name);

        //添加元素-年齡
        XmlElement ele1 = myXml.CreateElement("age");
        XmlText Text1 = myXml.CreateTextNode(age);

        //添加元素-性別
        XmlElement ele2 = myXml.CreateElement("sex");
        XmlText Text2 = myXml.CreateTextNode(sex);

        //添加元素的節點---studentRecord
        XmlNode newElem = myXml.CreateNode("element", "studentRecord", "");

        //在節點中添加元素
        newElem.AppendChild(ele0);
        newElem.LastChild.AppendChild(Text0);
        newElem.AppendChild(ele1);
        newElem.LastChild.AppendChild(Text1);
        newElem.AppendChild(ele2);
        newElem.LastChild.AppendChild(Text2);

        //將節點添加到文檔中
        XmlElement root = myXml.DocumentElement;
        root.AppendChild(newElem);

        //保存所有的修改
        myXml.Save(FileName);

    }

 
 
 
 
   //刪除節點內容
    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;
    }
 
 
//寫XML

        private void WriteXML()
        {
            XmlTextWriter xtw = new XmlTextWriter(@"MessageBook\Data\MessageBook1.xml"), null);
            xtw.Formatting = Formatting.Indented;

            xtw.WriteStartDocument();
            //xtw.WriteComment();

            xtw.WriteStartElement("Item");
            xtw.WriteElementString("UserName", "Tom");

            xtw.WriteEndElement();

            xtw.WriteEndDocument();
            xtw.Close();
        }

 

 

//讀XML

private void ReadXML()

{

// 創建一個XmlTextReader類的對象並調用Read方法來讀取XML文件
            XmlTextReader textReader  = new XmlTextReader("C:\\books.xml");
            textReader.Read();
            // 節點非空則執行循環體
            while ( textReader.Read() )
            {
                // 讀取第一個元素
                textReader.MoveToElement();
               Console.WriteLine("XmlTextReader Properties Test");
                Console.WriteLine("===================");  

                // 讀取該元素的屬性並顯示在控制台中
                Console.WriteLine("Name:" + textReader.Name);
                Console.WriteLine("Base URI:" + textReader.BaseURI);
                Console.WriteLine("Local Name:" + textReader.LocalName);
                Console.WriteLine("Attribute Count:" + textReader.AttributeCount.ToString());
                Console.WriteLine("Depth:" + textReader.Depth.ToString());
                Console.WriteLine("Line Number:" + textReader.LineNumber.ToString());
                Console.WriteLine("Node Type:" + textReader.NodeType.ToString());
                Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM