1.載入xml
A.裝載已有的xml1 XmlDocument doc=new XmlDocument ();
doc.Load(Server.MapPath("students.xml"));
B.新建立xml XmlDocument doc=new XmlDocument ();
string strXml="<students>
<student><id>1</id><name>hyq</name><age>24</age></student>
<student><id>2</id><name>hyq2</name><age>25</age></student>
<student><id>3</id><name>hyq3</name><age>26</age></student>
<student><id>4</id><name>hyq4</name><age>27</age></student>
</students>";
doc.LoadXml(strXml);
2.擷取下級所有節點值 1 XmlDocument doc=new XmlDocument ();
doc.Load(Server.MapPath("students.xml"));
2 XmlNodeList topM = doc.DocumentElement.ChildNodes;
3 StringBuilder str = new StringBuilder("<ul>");
4 foreach (XmlNode node in topM)
5 {
6
7 str.Append("<li>姓名:" + node.ChildNodes[1].InnerText + ";年齡:" + node.ChildNodes[2].FirstChild.InnerText + "</li>");
8
9 }
10 str.Append("</ul>");
11 lb_xml.Text = str.ToString();
PS:上面代碼中綠色字部分是擷取根節點。另一種擷取所有節點的方法,如果只是擷取部分節點的話,建議用此方法selectNodes
1 XmlNodeList nodeLists = doc.SelectNodes("students/student")
2 foreach (XmlNode node in nodeLists)
3 {
4
5 str.Append("<li>姓名:" + node.ChildNodes[1].InnerText + ";年齡:" + node.ChildNodes[2].FirstChild.InnerText + "</li>");
6
7 }
8 str.Append("</ul>");
9 lb_xml.Text = str.ToString();
3.增加節點增加已存在的節點副本
1 XmlNode node2 = doc.DocumentElement.ChildNodes[0].CloneNode(true);
2 node2.ChildNodes[0].InnerText = "6";
3 node2.ChildNodes[1].InnerText = "second";
4 node2.ChildNodes[2].InnerText = "135";
5 doc.DocumentElement.AppendChild(node2);增加全新的節點
1 XmlNode node1 = doc.CreateNode(XmlNodeType.Element, "job", "");
2 XmlNode node11 = doc.CreateNode(XmlNodeType.Element, "name", "");
3 node11.InnerText = "net";
4 node1.AppendChild(node11);
5 doc.DocumentElement.AppendChild(node1);
PS:例子中是以在根節點下增加節點為例,將此節點相應改變,就可在任意節點下增加節點或屬性。
另注意下:node.CloneNode(bool deep)方法,當deep=true時,表示複製節點下的子節點和自己;deep=false時,
只複製自己。
4。刪除節點 doc.DocumentElement.RemoveChild(XmlNode node)
(簡單事,簡單處理)