zoukankan      html  css  js  c++  java
  • XML的簡單讀取與寫入

    已知有一個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"); 
    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> 

    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);//顯示子節點點文本 



    xml系列轉自:http://big5.webasp.net/article/class111/

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    《高校后勤管理信息系统设计与实现》论文笔记五
    《高校后勤管理系统的设计与实现》论文笔记三
    《高校后勤管理系统的设计与实现》论文笔记二
    如何利用React.js开发出强大Web应用
    关于啤酒和尿布故事的真相
    以生活例子说明单线程与多线程
    未来哪些领域WiFi将成为刚需?
    CSS开发中的10个不要
    10年后编程还有意义吗?
    JavaEE中遗漏的10个最重要的安全控制
  • 原文地址:https://www.cnblogs.com/Athrun/p/1178879.html
Copyright © 2011-2022 走看看