在介绍之前,先了解xml技术用于解决什么问题:
xml语言出现的根本目标在于描述现实生活中经常出现的有关系的数据。比如说:(书架 书 作者 价格)(动物,哺乳动物,猫)这类的数据。
xml的语法跟html类似,不过xml没有只带的标签,它是让用户自己定义标签。
在xml技术里,可以编写一个文档来约束一个xml文档的书写规范,这称之为约束。它的出现就是为了防止用户胡乱定义标签。
常用的约束技术有
XML DTD
XML Schema
在应用程序中如何使用XML:
要想操作xml首先的加载到内存里。
XmlDocument document = new XmlDocument(); document.load("xml文件路径");
加载到内存后,就要对它执行一些操作了。
XmlElement element = document.DocumentElement; //DocumentElement属性会返回一个XMLElement实例(表示根节点);
XmlElement的属性
FistChild:第一个子节点
ListChild:最后一个子节点
NextSibling:当前节点的下一个节点
HasChildNodes:是否有子节点
例子:
XmlDocument document = new XmlDocument(); XmlElement element; if (!File.Exists(xmlPath)){//判断是否有文件 XmlDeclaration doc = document.CreateXmlDeclaration("1.0", "utf-8", null);//新建xml头 document.AppendChild(doc);//追加 element = document.CreateElement("persons");新建根节点 document.AppendChild(element); }else{ document.Load(xmlPath);//加载xml文件 element = document.DocumentElement; } XmlElement newPerson = document.CreateElement("person"); newPerson.SetAttribute("userName", users.UserName); //设置属性 newPerson.SetAttribute("phone", users.Phone); element.AppendChild(newPerson); document.Save(xmlPath);//保存文件
插入新节点:
XmlNode中有三个方法进行插入:AppendChild追加到后面,InsertAfter指定节点后面追加,InsertBefore指定节点前面追加
XmlElement root = document.DocumentElement;
XmlElement f1 = (XmlElement) root.FirstChild;
XmlElement newbook = document.CreateElement("newbook"); XmlText title = document.CreateTextNode("aaa");//创建文本 newbook.AppendChild(title);//追加到节点上
f1.InsertAfter(newbook, f1.FirstChild.NextSibling); //追加到f1下面第一个节点的下一个节点的后面
删除节点:
RemoveAll 删除所有字节点。
RemoveChild 删除一个子节点
XMLDocument document = new XmlDocument(); document.Load(xmlPath); XmlElement root = document.DocumentElement; if(root.HasChildNodes){//删除前判断是否有此根节点,以免出错 XmlNode book = root.LastChild; root.RemoveChild(book); document.Save(xmlPath); }
选择节点:
选择节点是通过XPath查询语言来进行查询选择的
SelectSingNode 返回一个节点
SelectNodes 返回一个节点集合
遍历: XmlNodeList node = root.SelectNodes("//author"); foreach (XmlElement element in node) { Console.WriteLine(element.InnerText); }