ch6DOM解析XML文档.ppt_第1页
ch6DOM解析XML文档.ppt_第2页
ch6DOM解析XML文档.ppt_第3页
ch6DOM解析XML文档.ppt_第4页
ch6DOM解析XML文档.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章 DOM解析XML文档,学 习 目 标 掌握DOM的概念 熟练掌握DOM文档树模型 掌握DOM对象的创建和调用方法 熟练掌握访问各种类型节点 掌握动态创建XML文档的方法 熟练掌握各种类型节点的添加、删除等操作,当XML文档作为数据交换工具时,应用程序必须 采用适合的方式来获取XML文档里包含的有用信息, 最直接,最容易想到的方法就是通过文件I/O来读取 XML文档里包含的信息。这种方法不仅效率太低, 而且编程复杂,显然不是一个好方法。,应用程序如何访问与操作XML文档,由于XML文档实质上就是一个文本文件,应用 程序不能对其进行直接的访问与操作。因此,我 们需要一个不仅能读的懂XML文档,而且还应提 供相应的XML应用程序接口(API)的XML解析器。 这样通过它作为媒介,将应用程序与XML文档 结合在一起,从而就能实现应用程序对XML文档 的访问与操作了。,XML解析器【重点掌握】,在解析XML文档时,通常是利用现有的XML解 析器对XML文档进行解析,而编写的应用程序则 通过解析器提供的API接口来获取XML数据。 多数解析器提供了至少两种API,一种是对象 模型API(DOM)和一个事件API(SAX)。,什么是XML解析器,XML解析器应该是这样的一个程序: XML解析器能够对XML文档进行分析 XML解析器提供访问XML数据的应用程序接口(API) XML解析器可以读取、更新、创建、操作一个XML文档 如何使用一个解析器?通常情况下,按如下步骤来使用XML解析器: 创建一个解析器对象 将您的 XML 文档传递给解析器 处理结果,XML解析器的种类,有不同的方法来划分解析器种类: 验证或非验证解析器 支持 Document Object Model (DOM) 的解析器 支持 Simple API for XML (SAX) 的解析器 用特定语言编写的解析器 (Java, C+, Perl 等) 如:用Java编写的解析器有JDOM,Apache的Xerces及IBM的XML4J;用C+编写的解析器有IBM的XML4C等等。 通过上面对XML解析器的分类,我们不难看出:XML解析器有很多种。到底哪一种最适合你呢?这要根据具体的情况来选择。 本章我们将选择一种流行的用于Java平台的XML解析技术: DOM(文档对象模型),一个来自W3C的成熟标准,现在使用的解析器大部分都是java编写的。最为 流行的XML解析器来自Apache组织提供的Xerces 项目。这是一个跨语言的XML解析器。 所有现代浏览器都有读取和操作 XML 内建 XML 解析器。解析器把 XML 载入内存,然后把它转换 为可通过 JavaScript 访问的 XML DOM 对象。,通过微软的 XML 解析器来加载XML,微软的 XML 解析器内建于 IE 5 以及更高的版本 中。下面的 JavaScript 片段把一个 XML 文档载 入解析器中:,var xmlDoc=new ActiveXObject(“Microsoft.XMLDOM“); xmlDoc.async=“false“; xmlDoc.load(“note.xml“); ,上面代码的第一个行创建一个空的微软 XML 文档对象。 第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。 第三行告知解析器加载名为 “note.xml” 的 XML 文档。, var XMLDoc; /定义变量XMLDoc XMLDoc=new ActiveXObject(Microsoft.XMLDOM); /将该变量赋予XML Document对象类型 XMLDoc.async=false; /禁止异步加载,当文档加载完毕,控制权才会返回给调用进程 XMLDoc.load(“ch6-1.xml“); /加载XML文档 var XMLNode; /定义变量XMLNode XMLNode=XMLDoc.documentElement.firstChild; /将根元素下的第一个元素BookInfo赋予 XMLNode变量 alert(XMLNode.childNodes.length); /将BookInfo的子元素数目显示在对话框上 ,应用程序与XML文档的关系图,现在能提供这个功能的XML应用程序接口(API)有以下两个: 文档对象模式(Document Object Model,DOM) 它是由W3C组织制定的一个文档模型规范。 XML简单应用程序接口(Simple API for XML,SAX) 它是由XML_DEV邮件列表成员开发的。,应用程序,XML,解析器,XML,文档,XML,JAXP介绍【重点掌握】,不同的厂商提供不同的解析器,这些解析器对 DOM对象的创建和使用方式各不一样。这样就有 一个比较严重的问题,程序代码和解析器直接耦 合。如果有天要换解析器,那么必须修改源代码。 JAXP就是为了解决这个问题的,它主要是在 各种解析器之上再增加了一层“工厂模式”的抽象, 就可以将应用程序代码和XML解析器彻底分离开 来,实现更好的解耦。,JAXP本身没有提供任何的XML解析支持,其底层必须依赖于各种具体 的XML解析器,但它又不与任何具体的XML解析器耦合,因此使得应 用程序可以在各种解析器之间轻松切换而无须修改源代码。,JAXP本身就是JDK的一部分,由javax.xml包,org.w3c.dom 包,org.xml.sax包组成。javax.xml.parsers包中提供了如 下4个类: DocumentBuilderFactory:获取DOM解析器的工厂类,它是JAXP工厂模式里的工厂 DocumentBuilder:DOM解析器的标准接口,所有DOM 解析器都应实现该接口,应用程序采用DOM解析时面向该接口编程 SAXParserFactory:获取SAX解析器的工厂类,它是JAXP工厂模式里的工厂 SAXParser:SAX解析器的标准接口,所有SAX解析器都要实现这个接口,应用程序采用SAX解析时面向该接口编程,DocumentBuilderFactory:在工厂模式中扮演工厂,有两个重要的方法 DocumentBuilderFactoryImpl1:具体的工厂类的实现 DocumentBuilderFactoryImpl2:具体的工厂类的实现 DocumentBuilder:在工厂模式中扮演工厂制造出来的产品对象DOM解析器的标准接口,应用程序面向此接口编程 Document:访问XML文档的唯一入口,DOM对象的创建及调用【重点掌握】,基于Java的DOM对象的创建及调用 1. 使用javax.xml.parsers包中的DocumentBuilderFactory类调用方法newInstance(), 实例化一个DocumentBuilderFactory对象.代码如下: 2.Factory对象调用newDocumentBuilder()方法,返回一个DocumentBuilder 对象(DOM解析器),代码如下: 3.Builder对象调用parse(File)指定的文件,并将解析内容以及对象的形式 返回,该对象是实现了Document接口的一个实例,代码如下:,DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(),DocumentBuilder builder=factory.newDocumentBuilder(),Document document=builder.parse(new File(“Example2.xml“),import org.w3c.dom.*; import javax.xml.parsers.*; import java.io.*; public class Example2 public static void main(String args) try DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse(new File(“Example2.xml“); String version=document.getXmlVersion(); System.out.println(“XML文档版本为:“+version); String encoding=document.getXmlEncoding(); System.out.println(“XML文档的编码:“+encoding); catch(Exception e)System.out.println(e); ,常用的解析接口,DOM SAX JDOM DOM4J,DOM介绍【重点掌握】,DOM的全称是Document Object Model,即文 档对象模型。它是W3C的标准接口规范,也是各 种应用程序用于在 XML 文档中修改和检索元素 或内容的应用程序编程接口(API)。同时W3C 的DOM被设计成适合多个平台,可以使用任意编 程语言实现的方法。,DOM 是以层次结构组织的节点或信息片断的 集合。这个层次结构允许开发人员在树中寻找特 定信息。分析该结构通常需要加载整个文档和构 造层次结构,然后才能做任何工作。由于它是基 于信息层次的,因而DOM被认为是基于树或基于 对象的。 DOM以树状结构组织XML文档的每个节点, 在访问树的节点之前,必须先加载整个XML文档, 并构造对应的树,解析器才能开始解析。,基于DOM的XML分析器将一个XML文档转换 成一个对象模型的集合(通常称DOM树)存放在 内存里。应用程序通过对这个DOM树的操作,从 而实现对XML文档数据的操作。通过DOM接口 ,应用程序可以在任何时候访问XML文档中的任 何一部分数据,因此,这种利用DOM接口的机制 也被称作随机访问机制。,XML文档,DOM解析器,1 加载,2 创建对应DOM树,3 对树上的节点操作,DOM的优点和缺点,DOM 以及广义的基于树的处理具有几个优点 由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像 SAX 那样是一次性的处理。 DOM 使用起来比较简单 对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好,比如 SAX。,DOM被分为不同的部分 核心DOM:定义了一套标准的用于任何结构化文档的对象 XML DOM:定义了一套标准的用于XML文档的对象 HTML DOM:定义了一套标准的用于HTML文档的对象 XML DOM是针对XML的文档对象模型的W3C标准,它 独立与平台语言,Java Script Language、VB Script Language以及C#、JAVA等大多数语言都支持文档对象 模型。,DOM文档树模型【重点掌握】,XML 文档中的每个成分都是一个节点,DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 标签是一个元素节点 包含在 XML 元素中的文本是文本节点 每一个 XML 属性是一个属性节点 注释属于注释节点, 刘海松 男 08211 24111977 刘红霞 女 08211 17101983 ,XML文档中所有元素对应于DOM树的节点类型,DOM基本接口【重点掌握】,Node接口 Document接口 NodeList接口 NameNodeMap接口 Element接口 Text接口,Node接口,DOM接口中有很大一部分接口是从Node接口继承过来的。Node接口代表了树中的一个节点,提供了访问DOM树中元素内容与信息的途径,并给出了对DOM树中的元素进行遍历的方法。 将从Node接口继承的各个子接口分别实现后,就形成节点树中常见的不同类型的节点,如属性节点,文本节点和元素节点等,Document接口,Document接口表示整个HTML或XML文档,是文档 树的根,作为对XML文档进行操作时入口节点。 由于所有的其他节点必须在文档内,Document接口提供了创建其他节点对象的方法,以及操作文档结构及其特性的方法。 Document节点可以包含多个处理指令和多个注释 作为其子节点,XML文档根元素节点是唯一,NodeList接口,NodeList接口提供对节点的有序集合的抽象,用于表示有顺序关系的一组节点。如某个节点的子节点序列。 例如:GetNodeByName方法的返回某个节点的子节点序列 NodeList的对象是活动的,对文档的改变会直接反映到相关的NodeList对象中 NodeList中的每个item都可以通过一个索引来访问,该索引值从0开始,获得一个该接口的实例化对象,实际上就是获得一个节点的集合,只不过开始时指针在第一个节点前面,NamedNodeMap接口,NamedNodeMap 接口的对象表示一个无顺序的节点列表。我们可通过节点名称来访问一组 节点的集合。 NamedNodeMap表示的是一组节点和其唯一的名字一一对应,该接口主要用于属性节点的表示上。 NamedNodeMap 可保持其自身的更新。假如节点列表或 XML 文档中的某元素被删除或添加,节点也会被自动更新。,Element接口,Element 对象表示 XML 文档中的元素。元素可包含属性、其他元素或文本。如果元素含有文本,则在文本节点中表示该文本。 重要事项:文本永远存储在文本节点中。在 DOM 处理过程中的一个常见的错误是,导航到元素节点,并认为此节点含有文本。不过,即使最简单的元素节点之下也拥有文本节点。举例,在 2005 中,有一个元素节点(year),同时此节点之下存在一个文本节点,其中含有文本(2005)。 由于元素对象也是一种节点,因此它可继承 Node 对象的属性和方法。,Text接口,Text接口继承CharacterData接口,通过从 CharacterData 接口继承的 data 属性或从 Node 接口继承的 nodevalue 属性,可以访问 Text 节点的文本内容。 Text 节点表示 HTML 或 XML 文档中的一系列纯文本。因为纯文本出现在 HTML 和 XML 的元素和属性中,所以 Text 节点通常作为 Element 节点和 Attr 节点的子节点出现。 用从 CharacterData 继承的方法或 Text 接口自身定义的 splitText() 方法可以操作 Text 节点。使用 document.createTextNode() 来创建一个新的 Text 节点。 Text 节点没有子节点。,访问Document节点,使用DOM解析XML文档,整个文档会被封装成一个 Document对象返回,该对象是Document接口实例化得到。 JAVA应用程序可以从Document节点的子孙节点中获 取整个XML文件中数据的解析。它有两个直接子节点分 别是DocumentType类型和Element类型。其中前者对应 着XML所关联的DTD文件,Element类型节点对应着XML 文件的根节点,可以通过该进一步获取子孙节点来分析 XML文件中的数据。, 家常菜二十一招 刘华林 2007 12.00 ,打印XML文档的根元素 打印节点的内容,创建解析器对象 调用解析器的parse方法获取解析文档的Document对象 通过调用Document对象的getDocumentElement()方法获取XML文档元素标记的根元素对象root(是一个Element节点),并通过getNodeName()方法获取根节点命名书店 通过调用Document对象的getElementsByTagName(“图书”)方法,获取节点命名为“图书”的节点集合,其长度可以用getLength()方法获取。对节点集合中每个节点调用getNodeName()获取节点命名,getTextContent()方法获取该节点和子节点的文本内容,import org.w3c.dom.*;import javax.xml.parsers.*;import java.io.*; public class Example3 public static void main(String args) try catch(Exception e)System.out.println(e); ,DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse(new File(“Example3.xml“);,Element root=document.getDocumentElement();/返回该XML文档元素标记的的根节点对象 String rootName=root.getNodeName();/获取root节点命名 System.out.println(“XML文件根节点的命名为 “+rootName);,NodeList nodelist=document.getElementsByTagName(“图书”);/获取节点命名为“图书”的节点集合 int size=nodelist.getLength(); for(int i=0;isize;i+) Node node=nodelist.item(i); /获取该集合中的每个节点 String name=node.getNodeName();/获取节点命名 String content=node.getTextContent(); /获取该节点和子节点的 System.out.println(“name “+name); System.out.println(content); ,访问Element节点,继承了Node接口.Element接口实例化之后对应 着节点树中的Element节点,它可以有Element子 节点和Text子节点., 修改文稿 看书 跑步 ,打印XML文档的根元素 打印所有节点的属性和内容,创建解析器对象,调用解析器的parse方法获取解析文档的Document对象 通过调用Document对象的getDocumentElement()方法获取XML文档元素标记的根元素对象root(是一个Element节点),并通过getNodeName()方法获取根节点命名日程计划 利用根节点(root),调用getChildNodes()方法,获取子节点的节点集合。其长度可以用getLength()方法获取。 对节点集合中每个节点首先判断该节点是否Element节点,如果是将其强制转换成为Element节点,然后输出该节点的命名、属性值和节点的文本数据。, 修改文稿 看书 跑步 ,Document,日程计划,XML 声明(处理指令),日程1,空 白 字 符,8:00-10:00,修改文稿,时间,日程2,日程3,空 白 字 符,空 白 字 符,空 白 字 符,10:00-16:00,看书,时间,16:00-18:00,跑步,时间,获取Document节点,获取Root节点,try DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse(new File(“Example4.xml“); Element root=document.getDocumentElement(); String rootName=root.getNodeName(); NodeList nodelist=root.getChildNodes(); for(int i=0;isize;i+) Node node=nodelist.item(i); if(node.getNodeType()=Node.ELEMENT_NODE) Element elementNode=(Element)node; String name=elementNode.getNodeName(); String id=elementNode.getAttribute(“时间“); String content=elementNode.getTextContent(); System.out.println(name+“ “+id+“ “+content+“n“); catch(Exception e)System.out.println(e);,访问Text节点,Text接口实现的对象是Text对象,该对象对应着节点树中的文本节点. Element节点对象和元素标记相对应,文本内容和Text节点相对应 getNodeType()方法判断出一个节点是否是Text节点.如果这个方法返回值Node.TEXT_NODE,计算机入门 清华出版社 34.5 ,空白,空白,这个标记对应着一个Element节点,该节点包括7个子孙节点,其中两个是 Element节点,2个空白的类字符节点,1个TEXT子节点,2个TEXT孙节点, 刘海松 2000 刘红霞 879 李张利 3200 陈凡灵 1680 ,如何获取普通员工月收入合计? 如何获取经理月收入合计? 如何获取所有员工月收入合计?,class TotalM double sumA,sumB,sumP; public void outP(NodeList nodelist) int size=nodelist.getLength(); for(int i=0;isize;i+) Node node=nodelist.item(i); if(node.getNodeType()=Node.TEXT_NODE) /判断该节点是否是文本节点 Text textNode=(Text)node; /强制转换节点类型为文本节点 String content=textNode.getWholeText(); /获取文本节点的内容 Element parent=(Element)textNode.getParentNode();/获取该文本节点的父节点 if(parent.getNodeName().equals(“月薪”) /判断父节点是否是”月薪” sumA=sumA+Double.parseDouble(content.trim(); String str=parent.getAttribute(“职务”);/获取父节点的属性”职务”节点的内容 if(str.equals(“普通员工”) /判断属性值是否是”普通员工” sumP=sumP+Double.parseDouble(content.trim(); if(str.equals(“经理”)/判断属性值是否是”经理” sumB=sumB+Double.parseDouble(content.trim(); if(node.getNodeType()=Node.ELEMENT_NODE)/判断该节点是否是元素节点 Element elementNode=(Element)node; /强制转换节点类型为元素节点 String name=elementNode.getNodeName(); NodeList nodes=elementNode.getChildNodes(); /获取元素节点的孩子节点集合 outP(nodes); /调用此方法本身,完成递归 ,访问Attr节点,Attr接口表示Element对象的属性,继承Node接口,对应着XML文件中标记所包含的属性在节点树中对应的节点 DOM不会把属性节点看作是文档树的一部分,它认为元素的属性是其特性,而不是一个来自它们所关联的元素的独立的身份. 在节点树中,可以通过调用Element的getArribute()方法获取某个标记的属性.,DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse(new File(“Example6.xml“); Element root=document.getDocumentElement(); String rootName=root.getNodeName(); NodeList nodelist=root.getElementsByTagName(“员工”);/获取root后代节点中标记为“员工”的节点集 int size=nodelist.getLength(); for(int i=0;isize;i+) Node node=nodelist.item(i); /依次取出”员工”节点 String name=node.getNodeName(); NamedNodeMap map=node.getAttributes();/获取标记中属性的集合 String content=node.getTextContent(); System.out.print(name); for(int k=0;kmap.getLength();k+) /循环的形式输出标记中所有的属性 Attr attrnode=(Attr)map.item(k);/将属性集合里的节点强制地转换为Attr节点 String attName=attrnode.getName();/获得属性名字 String attValue=attrnode.getValue();/获得属性值 System.out.println(“ “+attName+“=“+attValue); System.out.println(content);,总结,Document中包含了如下用来访问XML文档中 的节点的方法 getDocumentElement():用户获取XML文档中的节点的方法 Element getElementById(String elementId):用于根据XML元素的ID来获取XML元素 NodeList getElementsByTagName(String tagname):用于根据XML元素的标签名获取XML元素,DOM树中的所有节点都是Node对象,每个 Node对象都可能包括nodeName,nodeValue和 Attributes等属性,不同的Node节点对这3个属性 的支持是不同的。 NamedNodeMap getAttributes():用于获取该节点所包含的所有属性。只有当该节点是Element时才可真正有属性,其他类型的节点调用该方法返回null。 NodeList getChildNodes():返回由该节点所包含的所有子节点所组成的NodeList,Document getOwnerDocument():返回该节点所在的Document对象 Node getParentNode():返回该节点的父节点 String getTextContent():返回该节点及其后代节点的文本内容 Boolean hasAttributes():返回该节点(如果它是一个元素)是否包含任何属性 Boolean hasChildNodes():返回该节点是否包含任何子节点,在Node的所有子接口中,Element是最常用 的,它代表一个XML元素,该接口下提供了如下 方法来获取XML元素的内容 String getAttribute(String name):根据属性名获取指定属性值 Attr getAttributeNode(String name):根据属性名获取指定的属性节点 NodeList getElementsByTagName(String name):根据标签名获取由该元素包含的所有后代元素所组成的NodeList,String getTagName():获取该元素的标签名 Boolean hasAttribute(String name):判断该元素是否包含某个指定属性。若该元素具有名为name的默认属性(即使XML文档中没有明确指定该属性),则该方法返回true.,练习一, 疯狂Java讲义 99.00 该书全面介绍了Java SE的相关方面 轻量级Java EE企业开发实战 89.00 该书主要介绍了一种流行的轻量级企业应用架构 疯狂Ajax讲义 69.00 该书全面介绍了Ajax的相关技术 不能承受的生命之轻 乌合之众 能提高人类对世界认识的书籍 ,DOM对文档的操作【重点掌握】,通过DOM不但可以遍历XML文档指定的所有 节点,还可以对内存中的树模型进行操作. 动态创建XML文档 添加和删除元素节点 添加和删除属性节点 添加和删除文本节点 异常处理,动态创建XML文档,生成Document节点 应用程序修改Document节点,添加、删除和修改节点等操作 转换为XML文件。使用Transformer对象将一个Document节点转换为一个XML文件,Document document=builder.newDocument();,Document接口提供了如下常用方法来创建节点: Attr createAttribute(String name):根据给定属性名创建属性节点 Comment createComment(String data):根据给定的字符串创建注释节点 Element createElement(String tagName):根据给定标签名创建元素 ProcessingInstruction createProcessingInstruction(String taget, String data):根据给定处理指令名和处理指令属性创建处理指令 Text createTextNode(String data):根据给定字符串数据创建文本节点,在使用Document创建了各种类型的节点之后,可利用 Node提供的各种添加节点的方法来建立节点与节点之间的 结构关系,Node提供如下常用方法来建立节点之间的结构 关系。 Node appendChild(Node newChild):将newChild节点添加到当前节点的子节点列表的末尾 Node removeChild(Node oldChild):从当前节点的子节点列表中删除指定子节点 Node replaceChild(Node newChild,Node oldChild):将当前节点的子节点列表中的oldChild替换newChild Node insertBefore(Node newChild,Node refChild):在当前节点的子节点列表中refChild之前插入newChild,Element接口里则提供了如下两个方法用于设 置属性: Void setAttribute(String name,String value):添加名为name,值为value的属性 Attr setAttributeNode(Attr newAttr):将newAttr对应的属性添加到当前元素中,我们可以把Document想成成一个文档根,每 个文档根能“长”一个根节点,根节点又可以“长”许 多子节点,每个子节点又可“长”数量不限的子节 点”.依此类推,最后就可以形成内存里的 DOM树。, XML实践教程 王峰 JSP从入门到精通 刘海松 Java实践教程 李章帅 ,创建根节点(Document),DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.newDocument(); document.setXmlVersion(“1.0“);,创建根元素(图书列表),Element root=document.createElement(“图书列表”); document.appendChild(root);,创建元素节点(图书),建立元素节点和根元素的关系,使用TransformerFactory 类建立一个对象 调用transFactory的newTransformer()方法,得到一个Transformer对象 将被转换的Document对象封装到一个DOMSource对象中 将转换得到XML文件对象封装到一个StreamResult对象中 调用实例化的Transformer对象的transform()方法实施转换,transFactory=TransformerFactory.newInstance();,Transformer transformer=transFactory.newTransformer();,DOMSource domSource=new DOMSource(document);,File file=new File(“图书列表.xml“); FileOutputStream out=new FileOutputStream(file); StreamResult xmlResult=new StreamResult(out);,transformer.transform(domSource,xmlResult);,添加和删除元素节点,将XML文档加载到内存中,并获取XML文档的根节点root Document document=builder.parse(“Example8.xml“); Element root=document.getDocu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论