前言
想想畢業到現在已經工作了3個月,總結的知識點還是太少。這周因爲項目完成的差不多了,有空補充一下知識,上週學了XML嗎,一直都沒有總結。今天便總結一下,一方面梳理一下知識點,一方面鞏固下知識。
XML的特性
- 標籤要閉合
- 屬性要用" "包圍。
- Xml的大小寫敏感
- 元素必須關閉
- 標籤可以嵌套
怎麼獲取你已經建立的xml文件
1,先建立一個xml文件取名XMLFile1.xml
2,在同一目錄下建立一個webform頁面,獲取同類型的代碼如下
1 XmlDocument xd = new XmlDocument(); 2 xd.Load(Server.MapPath("XMLFile1.xml"));
第一行代碼聲明一個XmlDocument類(想象一個裝xml文件的容器),第二行代碼把xml文件導入該容器。
怎麼獲取xml的節點
爲了更加直觀一點,直接上代碼:
1 XmlElement xe=xd.DocumentElement; 2 //獲取xml文件中的根元素 3 4 XmlNode root = xd.SelectSingleNode("DocumentElement"); 5 //獲取xml文件中的第一個所找"DocumentElement"節點,此處因爲DocumentElement爲根節點, 6 //所以可以用來獲取該xml文件中的全部節點 7 8 XmlNode xn = root.FirstChild; 9 //根節點下的第一個節點 10 11 xn = root.LastChild; 12 //根節點下的最後一個節點 13 14 XmlNodeList xnl=xd.SelectSingleNode("DocumentElement").ChildNodes; 15 //獲取xml文件中的全部孩子節點 16 17 18 xnl = root.SelectNodes("descendant::basic[Name='Lily']"); 19 //獲取root節點下所有滿足name節點爲lily的一級子節點,語法爲("descendant::{0}[{1}"],root節點的一級子節點,條件)
附上一個簡單的xml
<DocumentElement> <basic> <ID>1</ID> <Name>Lily</Name> </basic> <basic> <ID>2</ID> <Name>Lucy</Name> </basic> <basic> <ID>3</ID> <Name>Lilei</Name> </basic> <basic> <ID>4</ID> <Name>HanMeiMei</Name> </basic> <basic> <ID>5</ID> <Name>LinTao</Name> </basic> </DocumentElement>
節點的操作方法
下面寫了幾個常用的,歡迎補充
1 增加節點
1 XmlElement xe = xd.CreateElement("basic");//新建節點 2 XmlElement xe2 = xd.CreateElement("ID"); 3 xe2.InnerText = "5";// 4 xe.AppendChild(xe2);//把xe2放到basic節點裏 5 XmlElement xe3 = xd.CreateElement("Name"); 6 xe3.InnerText = "HuangFeiHong"; 7 xe.AppendChild(xe3); 8 root.InsertAfter(xe, root.SelectSingleNode("descendant::basic[Name='Lily']"));//xe爲要插入的節點,第二個參數爲要插入的位置 9 xd.Save(Server.MapPath("XMLFile1.xml"));//保存xml文件
2 刪除節點
XmlNode root = doc.DocumentElement; XmlNode xn1 = root.SelectSingleNode("descendant::basic[ID='3']"); root.RemoveChild(xn1);
3將xml顯示出來
sb爲StringBuilder類型;
sb.Append("<table>"); XmlNodeList nodelist = root.SelectNodes("//basic"); foreach (XmlNode xn in nodelist) { sb.Append("<tr>"); XmlNodeList xnlist=xn.ChildNodes; foreach (XmlNode XN in xn) { sb.Append("<td width='50px' height='20px'>"); sb.Append(XN.InnerText); sb.Append("</td>"); } sb.Append("</tr>"); } sb.Append("</table>");
4 增刪查改,最後一個當然是改,不過此處不再貼出代碼,實際操作爲修改找到節點的innerText即可。
說說感想
雖然不怎麼寫博客,不過倒是看了很多,學習了很多,第一次寫這種總結性的博客,寫的不好希望大家給出意見。今天寫的這篇博客也花了有三個小時。臨時寫的程序,寫的過程發現了很多缺漏,重新梳理了很多知識。發現寫博客確實能幫助自己進步,鞏固知識,能把自己亂糟糟的知識一點點理出來。以後還會繼續寫。共勉!