第9讲-文档对象模型(DOM)-SN3005 (XML09)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

使用XML企业应用开发第四卷:XML解析器文档对象模型(DOM)软件工程系谭翔纬使用XML企业应用开发2回顾了解XPath的概念描述上下文结点、定位路径和轴列出所有XPath函数以及它们的使用熟悉使用相关的XSLT元素使用XML企业应用开发3目标DOM是一组独立于语言和平台的应用程序编程接口,描述如何访问和操纵存储在结构化XML文档中的信息DOM可以表示树状结构了解W3C为DOM提供一系列API,以供应用程序调用掌握DOMAPI的核心接口对结点的操作包括读取、添加、删除、替换和创建,掌握用java实现这些操作的方法使用XML企业应用开发4DOM概述简单说,DOM是一组独立于语言和平台的应用程序编程接口,它能够描述如何访问和操纵存储在XML和HTML文档中的信息。DOM的文档结构DOM文档是由树状结构表示的。树的每一个点都称之为结点。使用XML企业应用开发5示例DocumentElement:TeamsElement:TeamElement:TeamnameElement:CountryElement:MemberText:ACMilanText:ItalyAttr:AgeAttr:SexText:32Text:maleDOM文档树表示Text:Pippo使用XML企业应用开发6DOM工作方式XML文档XML解析器文档对象模型(树状结构视图)应用程序将XML文档一次性的装入内存,对文档进行解析根据文档中定义的元素、属性、注释和处理指令等不同的内容进行分解,以结点树的形式在内存中创建XML的表示DOM文档中的每一个结点对应模型中一个对象,然后根据对象提供的编程接口,在Application中访问、操作XML文档使用XML企业应用开发7DOMAPINodeDocumentDocumentFragmentNodeListChracterDataElementDOMExceptionEntityDOMImplementationAttrEntityReferenceDocumentTypeCDATASectionNamedNodeMapTextProcessingInstructionNotation不同结点类型对应接口类型表示文档根结点表示文档类型声明表示文档片段表示可解析的文本内容使用XML企业应用开发8DOMAPI接口下面通过DOM的简单应用,学习DOM的主要核心接口⑴遍历文档⑵添加结点⑶删除结点⑷替换结点使用XML企业应用开发9应用:遍历文档使用XML企业应用开发10代码分析-1DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();Documentdoc=builder.parse(args[0]);doc.normalize();Elementroot=doc.getDocumentElement();①创建文档对象生成工厂;②实例化文档对象;③解析XML文档;④normalize()方法可以去掉XML文档中作为格式化内容的空白而映射在DOM树中不必要的TextNode对象;⑤获得文档根元素结点Document接口使用XML企业应用开发11代码分析-2获得元素子结点与属性结点子结点的个数处理属性结点递归处理子结点Node结点常量使用XML企业应用开发12代码分析NodeListchildren=element.getChildNodes();NamedNodeMapattr=element.getAttributes();intr=children.getLength();Node接口使用XML企业应用开发13NodeList接口:我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。if(attr!=null){System.out.print(+element.getNodeName());for(intj=0;jattr.getLength();j++){System.out.print(+attr.item(j).getNodeName()+=+attr.item(j).getNodeValue()+);}System.out.println();}elseif(attr==null){System.out.println(+element.getNodeName()+);}代码分析NamedNodeMap接口:用于表示可以通过名称访问的节点的集合使用XML企业应用开发14代码分析if(element.hasChildNodes()){for(intk=0;kr;k++){if(children.item(k).getNodeType()==Node.ELEMENT_NODE)printNode((Element)children.item(k));elseif(children.item(k).getNodeType()==Node.TEXT_NODE){System.out.println(children.item(k).getNodeValue());}}System.out.println(/+element.getNodeName()+);}使用XML企业应用开发实验一:使用DOM遍历编写一个Java程序,将students.xml中的所有节点遍历输出。students.xml使用XML企业应用开发参考代码:使用XML企业应用开发17DOM应用:添加结点在元素Teams的子元素Team后添加一个新的Team元素。生成一个新的结点Team使用XML企业应用开发18在根结点下添加新的Team结点该代码作用:利用Transformer将处理的文档信息通过XSLT转换返回给源文档。如果不加该段代码,程序对信息的处理只表现在内存中,无法反映在XML文档上。使用XML企业应用开发19运行结果使用XML企业应用开发20DOM应用:插入结点在现有Team元素之前插入新结点Team新结点Team使用XML企业应用开发21代码分析在原有Team元素前插入一个新的Team结点使用XML企业应用开发22运行结果使用XML企业应用开发23应用:删除结点将上例中第一个Team元素的Member子元素的文本子节点删除使用XML企业应用开发24运行结果使用XML企业应用开发25DOM应用:删除结点将上例中第一个Team结点删除使用XML企业应用开发26运行结果使用XML企业应用开发27DOM应用:替换结点创建一个新的结点Member,替换原先的Member结点创建Member结点结点替换root.getFirstChild().replaceChild(newmember,oldmember);替换使用XML企业应用开发28运行结果使用XML企业应用开发实验二使用DOM操作XML新建java程序,建立如下图的ds.xml文档参考代码:使用XML企业应用开发实验二使用DOM操作XML在上例ds.xml文档中开始部分添加一条学生记录。参考代码:思考(1)如何删除张三学生的信息?(2)如何把李四学生性别改为男?使用XML企业应用开发31DOM特点-1文档对象模型(DocumentObjectModel,DOM):是XML文档的编程接口定义如何在程序中访问和操作XML文档是与平台和语言无关的接口以树结构表示XML文档通过提供一组对象对XML文档结构的访问定义用于访问和操作XML文档的API使用XML企业应用开发32DOM特点-2文档对象模型DOMXML文档的编程接口定义如何在程序中访问和操作XML文档与平台和语言无关的接口使用XML企业应用开发33DOM特点-3编写一个通过DOM访问XML文档的应用程序时需要:XML解析器DOM实现使用DOM创建和操作XML文档有助于避免:未封闭标签错误嵌套标签使用DOM能够在数据库和XML文件之间轻松移动信息使用XML企业应用开发34总结DOM是用于XML文档的与平台和语言无关的编程接口DOM定义如何操作和访问XML文档要通过DOM访问XML文档,需要以下两个组件:XML解析器DOM实现DOM创建的节点树是XML文件的内容的逻辑表示使用XML企业应用开发35思考什么是DOM?简述DOM的结构和工作方式。Node接口的appendChild和insertChild方法有什么不同?

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功