《第8章XML DOM编程模型.ppt》由会员分享,可在线阅读,更多相关《第8章XML DOM编程模型.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章 XML DOM编程模型编程模型目标l理解DOM定义l解析XML文档,生成节点树l操纵DOM模型的对象、接口、属性、方法8.1 文档对象模型概述DOM(Document Object Model)定义了文档的逻辑结构和访问、操纵文档的方法。它为XML、HTML提供了应用程序接口API。DOM中的对象允许开发者从文档中读取、搜索、修改、增加和删除文档中的数据,改变xml文档的显示方式。DOM提供的对象和方法可以和任何编程语言(java、c#、c+、VB)一起使用,也可以与VBScript、JavaScript脚本语言一切使用。XML应用程序DOM接口XML解析器XML文档DOM在应用程
2、序中所处的地位DOM优越性DOM能够保证正确的语法和格式规范性DOM能够简化内部文档操作,只要掌握几种常用的接口就可以轻松的进行开发。DOM可以XML文档与典型的层次数据库和关系数据库良好的结合并相互转换。8.2 XML解析器DOM:用于平台无关的方式表示xml文档的官方W3C标准 SAX:基于事件驱动,使用大型文档JDOM:java特定文档模型,简化了与xml的交互DOM4J:代表了完全独立的开发结果,性能优异、功能强大和易用,并且是开源的。8.3 DOM解析树lDOM接口提供了一种通过分层对象模型访问XML文档中信息的方式,这些分层对象模型依据XML文档的结构形成了一个节点树,也就是一个对
3、象模型的集合。l应用程序正是通过与这个节点树的交互来访问XML文档信息的。lXML文档中每一个组件(标记)都对应树中的一个节点(node),不同类型的组件对应不同类型的节点,有各自不同的属性和方法。8.3 DOM解析树l最常见的节点类型:元素:元素是 XML 的基本构件。元素可以有其它元素、文本节点或两者兼有来作为其子节点。元素节点还是可以有属性的唯一类型的节点。属性:属性节点包含关于元素节点的信息,但实际上,不认为它是元素的子节点文本:文本节点是文本。它可以包含许多信息或仅仅是空白。文档(根节点):文档节点是整个文档中所有其它节点的父节点。(根节点不等于根元素节点!)l较不常见的节点类型:C
4、DATA、注释、处理指令XML文档 王珊王珊 数据库原理数据库原理 孙更新孙更新 XML实用大全实用大全 DOM解析树文本authorbooksbookbookauthortitletitle王珊数据库原理孙更新孙更新XML实用大全实用大全文档(根节点)根元素节点元素MSXML解析XML文档的过程MSXML解析XML文档的过程8.4 MSXML DOM模型结构 当使用DOM处理XML文档时,主要是如下四个核心对象和接口:对象说明DOMDocument文档对象,代表整个xml文档IXMLDOMNode文档节点,可以是元素、属性、处理指令、文本或其他存储在XML文档里的信息IXMLDOMNodeL
5、ist描述节点对象的集合,可以使用该对象遍历这个集合IXMLDOMParseError验证XML文档对于DTD、XSD的正确性8.4.1 DOMDocument对象 DOMDocument 对象表示DOM树的最顶层节点(根节点),它实现了使用XML文档所需的所有方法:createElement(elementname):创建以元素名命名的节点,但名称空间受限制的元素除外createAttribute(attributename):创建以属性名命名的属性节点createComment(text):创建注释节点createTextNode(text):创建指定字符串的文本节点createNode(
6、type,name,namespace-URI):创建节点,type可以是1(元素)、2(属性),3(文本节点),name为节点名,namespace-URI为名称空间。appendChild(child node):把用createNode()或createElement()方法创建的节点或元素,追加到树形结构上。Load(XMLdocment):载入给定地址的XML文档docobj.load(“http:/ var error=docobj.parseErrorreadyState:返回文档的状态,1正在载入中;2已下载;3对话;4结束。例 var stateinfo=docobj.rea
7、dyStatechildNodes:返回属于一个父节点的子节点集合 举例:王珊王珊 数据库原理数据库原理 孙更新孙更新 XML实用大全实用大全 要求:利用javascript和DOM接口实现对此XML文档根节点及子节点等组件的访问使用JAVASCRIPT编写生成DOM文档对象的方法var xmlDoc=new ActiveXObject(Msxml2.DOMDocument.4.0);xmlDoc.async=false;xmlDoc.load(candidate.xml);生成生成XML文档对象文档对象xmlDoc,xmlDoc中包含中包含XML文档中所有元素和节点文档中所有元素和节点 装载
8、装载XML文档完毕后才开始处理下一步骤文档完毕后才开始处理下一步骤 将将XML文档装载到文档对象中,在内存中形成文档对象树文档装载到文档对象中,在内存中形成文档对象树8.4.2 IXMLDOMNode对象 IXMLDOMNode对象代表XML文档树形结构中的一个单个节点,它可能包含其他子节点的元素。使用方法有:方法说明appendChild(newChild)把newChild加到使用节点的子节点的末尾insertBefore(newNode,refNode)把newNode插在已存节点refNode之前removeChild(nodeName)删除指定节点replaceChild(newNo
9、de,oldNode)替换节点setAttribute(nodename,nodevalue)添加属性cloneNode(boolean)克隆节点,如为true则是完全克隆属性说明nodeName返回节点名称nodeType返回节点类型nodevalue返回节点包含的文本childNodes返回节点的子节点数firstChild返回该节点的第一个子节点lastChild返回该节点的最后一个子节点text返回在IXMLDOMNode对象中的文本xml返回IXMLDOMNode对象的代码 王珊王珊 数据库原理数据库原理 孙更新孙更新 XML实用大全实用大全 为第一本书元素添加一个“定价”子元素,元
10、素内容为“100元”,并将其插入到“作者”子元素之前。为第二本书元素添加一个“备注”属性,属性值为“计算机专业使用”复制第一个图书元素及所有子元素,并添加到文档最后删除第一个图书元素 曹雪芹 红楼梦 要求:动态创建上面的XML文档创建文档对象实例创建添加文档声明创建添加根元素创建对应的子节点创建孙子节点创建对应的属性xml文档appendChild、createElement、createNode、createTextNode、setAttribute8.4.3 IXMLDOMNodelist对象为了操纵XML文档,IXMLDOMNodelist对象提供存在于XML文档中的节点集合。利用IXM
11、LDOMNodelist对象可以遍历节点集。方法1:item(number),返回指定数值对应位置的节点,number是位置索引,第一个为0。方法2:nextNode(),返回节点集的下一个节点。使用IXMLDOMNodelist属性length可以获得节点集中节点的个数。王珊 数据库原理 孙更新 XML实用大全 要求:利用IXMLDOMNodelist遍历上面的XML文档,显示书名和作者8.4.4 IXMLDOMParseError对象 IXMLDOMParseError对象用来验证XML文档对于schema或DTD的正确性,并且提取在验证过程中产生的错误信息。errorCode:该属性包含长整形错误代码,没有错误,返回0。reason:该属性包含解释错误原因的字符串。Line:该属性存储代表错误行数的长整形。linePos:该属性存储代表错误位置的长整形。srcText:该属性包含引起错误的那一行字符串。8.6 本章小结DOM基本概念模型结构和解析树DOM核心对象的操作课后作业1、曹雪芹 红楼梦 要求:动态创建上面的xml文档2、java方向同学预习第九章第二节内容,.net方向同学预习第十章第一节内容
限制150内