什么是DOM(Document object model):
可以允许程序和脚本动态的访问及更新文档内容,结构和样式的规范化接口,通俗一点,就是一种规范。
DOM的级别:
级别一:专注于html、xml文档模型,具有文档导航和处理功能
级别二:在DOM级别一基础之上添加了样式表功能模型和事件模型。
级别三:在DOM级别二基础之上添加内容模型和文档验证,同时还规定文档的加载和保存,文档查看和文档格式化及关键事件。
xml文档中DOM模型:是DOM解析器将xml文档在内存中解析为对象树的形式。
DOM 树的节点类型:
<1> document(文档节点):是DOM树的根节点。
<2> element(元素节点):xml中元素成为dom树的元素节点。
<3> attribute(属性节点): xml中的属性成为Dom树的属性节点。
<4> text(文本节点): xml 中的文本成为Dom 树的文本节点。
<5> comments(注释节点):xml中的注释节点成为Dom树的注释节点。
使用DOM模型创建xml文档和解析xml文档
//使用XmlDocument对象创建文档对象 XmlDocument doc=new XmlDocument(); //使用XmlDeclaration创建文档描述 XmlDeclaration declaration=new XmlDeclaration("1.0","utf-8",null); //使用XmlNode对象创建根节点 XmlNode root=doc.createNode(XmlNoteType.Element,"class",null); //使用XmlNode对象创建子节点 XmlNode subNote=doc.createNode(XmlNoteType.Element,"student",null); //创建文本节点 XmlNode textNote=doc.createNode(XmlNoteType.text,null,null); textNode.value="张三"; //将子节点添加到根节点之下 root.AppendChild(subNote); //文档中添加文档描述 doc.AppendChild(declaration); //文档中添加根节点 doc.AppendChild(root); //保存xml文件 string filePath=server.MapPath(@"~xmlclass.xml"); doc.Save(filePath); //使用DOM 对象解析xml文档 //加载xml文档 XmlDocument doc=XmlDocument(); string filePath=server.MapPath(@"~xmlclass.xml"); doc.load(filePath); //定义实体为stuInfo的集合收集xml中的数据 List<stuInfo> stuList=new List<stuInfo>(); //得到根节点下的所有节点 XmlNoteList list=doc.DocumentElement.ChilidNodes; //遍历根节点下的所有节点 foreach(XmlNode in item list) { foreach(XmlNode in subitem item.ChildNodes) { stuInfo stu=new stuInfo(); //item中的属性节点 stu.stuNo=Convert.ToInt32(subitem.Attributes["name"].value); //..... list.add(stu); } }