C#操作xml文件實(shí)例詳解
C#操作xml文件實(shí)例是如何的呢?讓我們先看看問題:
已知有一個(gè)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﹥
C#操作xml文件實(shí)例1、
往﹤bookstore﹥節(jié)點(diǎn)中插入一個(gè)﹤book﹥節(jié)點(diǎn):
- XmlDocument xmlDoc=new XmlDocument();
- xmlDoc.Load("bookstore.xml");
- XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找﹤bookstore﹥
- XmlElement xe1=xmlDoc.CreateElement("book");//創(chuàng)建一個(gè)﹤book﹥節(jié)點(diǎn)
- xe1.SetAttribute("genre","李贊紅");//設(shè)置該節(jié)點(diǎn)genre屬性
- xe1.SetAttribute("ISBN","2-3631-4");//設(shè)置該節(jié)點(diǎn)ISBN屬性
- XmlElement xesub1=xmlDoc.CreateElement("title");
- xesub1.InnerText="CS從入門到精通";//設(shè)置文本節(jié)點(diǎn)
- xe1.AppendChild(xesub1);//添加到﹤book﹥節(jié)點(diǎn)中
- 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﹥節(jié)點(diǎn)中
- xmlDoc.Save("bookstore.xml");
- //================
C#操作xml文件實(shí)例結(jié)果為:
- ﹤?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﹥
C#操作xml文件實(shí)例2、
修改節(jié)點(diǎn):將genre屬性值為“李贊紅“的節(jié)點(diǎn)的genre值改為“update李贊紅”,將該節(jié)點(diǎn)的子節(jié)點(diǎn)﹤author﹥的文本修改為“亞勝”。
- XmlNodeList nodeList=xmlDoc.
- SelectSingleNode("bookstore").ChildNodes;
- //獲取bookstore節(jié)點(diǎn)的所有子節(jié)點(diǎn)
- foreach(XmlNode xn in nodeList)
- //遍歷所有子節(jié)點(diǎn)
- {
- XmlElement xe=(XmlElement)xn;
- //將子節(jié)點(diǎn)類型轉(zhuǎn)換為XmlElement類型
- if(xe.GetAttribute("genre")=="李贊紅")
- //如果genre屬性值為“李贊紅”
- {
- xe.SetAttribute("genre","update李贊紅");
- //則修改該屬性為“update李贊紅”
- XmlNodeList nls=xe.ChildNodes;
- //繼續(xù)獲取xe子節(jié)點(diǎn)的所有子節(jié)點(diǎn)
- foreach(XmlNode xn1 in nls)//遍歷
- {
- XmlElement xe2=(XmlElement)xn1;
- //轉(zhuǎn)換類型
- if(xe2.Name=="author")//如果找到
- {
- xe2.InnerText="亞勝";//則修改
- break;//找到退出來就可以了
- }
- }
- break;
- }
- }
- xmlDoc.Save("bookstore.xml");//保存。
- //=================
C#操作xml文件實(shí)例***結(jié)果為:
- ﹤?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﹥
C#操作xml文件實(shí)例3、
刪除
- ﹤book genre="fantasy"
- ISBN="2-3631-4"﹥節(jié)點(diǎn)的genre屬性,刪除
- ﹤book genre="update李贊紅" ISBN="2-3631-4"﹥節(jié)點(diǎn)。
- 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é)點(diǎn)的全部內(nèi)容
- }
- }
- xmlDoc.Save("bookstore.xml");
- //====================
C#操作xml文件實(shí)例***結(jié)果為:
- ﹤?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﹥
C#操作xml文件實(shí)例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é)點(diǎn)點(diǎn)文本
- }
- }
C#操作xml文件實(shí)例的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#操作xml文件有所幫助。
【編輯推薦】