添加引用
using System.Xml;
創建XML文件
XmlDocument xmldoc=new XmlDocument(); //加入XML的聲明段落:<?xmlversion="1.0" encoding="utf-8"?> XmlDeclaration xmldecl=xmldoc.CreateXmlDeclaration("1.0", "utf-8", null); xmldoc.AppendChild(xmldecl); //保存創建好的XML文檔 xmldoc.Save(@"D:\user.xml");
加載XML文件
//方法一:Lode方法加載的是XML文件所在的路徑 xmldoc.Load(@"D:\user.xml"); //方法二:LoadXml方法加載的是XML字符串 xmldoc.LoadXml("<user></user>");
創建節點
//創建根節點 XmlElement xmlroot = xmldoc.CreateElement("user"); xmldoc.AppendChild(xmlroot); //創建根節點的子節點
XmlElement ePerson=xmldoc.CreateElement("person");
xmlroot.AppendChild(ePerson);
獲取節點
//獲取根節點 XmlElement root = xmldoc.DocumentElement; //獲取單個節點:如果有篩選到多個符合條件的,默認選第一個 XmlNode node=xmldoc.SelectSingleNode("user");//方法一:獲取標簽名為:user的節點 XmlNode node=xmldoc.SelectNodes("user").Item(0);//方法二:這種方法需要了解節點排列順序才可以准確的獲取想要的節點 XmlNode node=xmldoc.SelectSingleNode("user/person[@name='王五']")//方法三:指定了屬性,進一步篩選 //獲取該路徑下所有節點的集合 XmlNodeList nodelist=xmldoc.SelectNodes("user/person");//方法一:獲取user節點下的person節點集合 XmlNodeList nodelist=xmldoc.SelectSingleNode("user").ChildNodes;//方法二:獲取user節點下的所有子節點 XmlNodeList nodelist=xmlroot.GetElementsByTagName("person")//方法三:獲取根節點下的標簽名為person的節點集合 //遍歷節點 foreach(XmlNode childNode in nodelist) { Response.Write(childNode .Name); }
刪除節點
//刪除其下所有節點和其本身的屬性以(只剩下標簽) xmlroot.RemoveAll(); //刪除指定節點,括號里傳入的是節點名 xmlroot.RemoveChild(person);
設置屬性以及文本節點
//方法一 person.SetAttribute("name","張三"); //方法二:這種方法可以用來獲取和設置屬性值,但前提是該屬性要存在 person.Attributes["name"].Value = "張三三"; //方法三 XmlAttribute age = xmldoc.CreateAttribute("age"); age.Value = "23"; person.Attributes.Append(age); //設置文本節點 person.InnerText = "123";
獲取屬性值
//方法一 string name=person.Attributes["name"].Value.ToString(); //方法二 string name=person.GetAttribute("name").ToString(); //方法三:XmlNode.SelectSingleNode()方法中,節點名加@表示查找屬性,但最后要轉成(XmlAttribute) XmlAttribute xa = (XmlAttribute)person.SelectSingleNode("@" + name); string name=xa.Value.ToString();
刪除屬性
//方法一:刪除指定屬性 person.RemoveAttribute("age"); //方法二:刪除某個位置的屬性(需要了解屬性的順序) person.RemoveAttributeAt(0); //方法三:刪除所有屬性 person.RemoveAllAttributes();
XmlNode和XmlElement比較
XmlElement是XmlNode的子類。
Xml節點有多種類型:屬性節點、注釋節點、文本節點、元素節點等。XmlNode是這多種節點的統稱,但是XmlElement專門指的就是元素節點。
XmlElement是具現類,可以直接實例化,而XmlNode是抽象類。