T4JAVA程序解析XML_第1页
T4JAVA程序解析XML_第2页
T4JAVA程序解析XML_第3页
T4JAVA程序解析XML_第4页
T4JAVA程序解析XML_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

Java程序解析xml,回顾,Schema概述Schema简介Schema优点Schema的文件结构Schema语法schema元素简单元素属性限定属性和元素的值复合元素指示器(Indicators),目标,了解DOMDom中的所有操作都是通过接口来实现可通过DOM来读/写XML掌握JDOM用JDOM来解析学生信息的xml文件,XML解析器,解析器是一个软件应用程序,设计用于分析文档(这里是指XML文件),以及做一些特定于该信息的事情。Java中处理XML文档的标准API有两种,即XML的简单API(SAX,SimpleAPIforXML)和文档对象模型(DOM,DocumentObjectModel)其他的API,如JDOM,dom4j等。,DOM,DOM的全称是DocumentObjectModel,也即文档对象模型。基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据。,DOM,内存中生成的节点树,矩形框表示元素节点椭圆表示文本节点。DOM使用父子关系。samples是根元素:三个文本节点(空白),两个元素节点server和monitor。server和monitor节点具有null值,UNIX和color文本节点其作为孩子。,DOM,DOM树中最常见的节点类型包括:元素节点(Elementnode):元素是XML的基本构造模块。通常,元素拥有子元素、文本节点,或两者的组合。元素节点也是能够拥有属性的唯一节点类型。属性节点(Attributenode):属性节点包含关于元素节点的信息,代表一个属性,但是并不实际认为是元素的孩子,例如:12341文本节点(Textnode):文本节点就是名副其实的文本。它可以由更多信息组成,也可以只包含空白。文档节点(Documentnode):文档节点是最上层的节点,是文档中其他所有节点的父亲。CDATA、处理指令、注释、实体、实体引用节点等等,DOM接口介绍,文档对象模型利用对象来把文档模型化,这些模型不仅描述了文档的结构,还定义了模型中对象的行为。在DOM中,对象模型要实现:用来表示、操作文档的接口;接口的行为和属性;接口之间的关系以及互操作。在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap,DOM接口介绍-Document接口,Document接口代表了整个XML/HTML文档,因此它是整棵树的根,提供了对文档中的数据进行访问和操作的入口Document接口有两个作用:表示XML文档本身和提供对内容、文档类型声明和其他属性的访问他也是个抽象工厂,负责生成文档中的节点:元素、文本、说明、处理指令,等等。DOM是读写API,不仅可以通过分析文本文件生成DOM文档,也可以在内存中从头开始生成新的文档。生成新Document对象的抽象工厂接口是DOMImplementation.通过节点的ownerDocument属性,用来表明当前节点是由谁所创建的以及节点同Document之间的联系,DOM接口介绍-Document接口,在DOM树中,Document接口同其他接口之间的关系如下,Document接口提供的方法(见附件中给的Document.java源码),DOM接口介绍-Node接口,在DOM树中,Node接口代表了树中的一个节点。Note接口大致可以分为五个部分:节点类型常量设置与读取节点属性的方法导航DOM树的方法增加与删除子节点的方法几个实用程序方法,Note接口提供的方法(见附件中给的Note.java源码),DOM接口介绍-Node接口,一个典型的Node接口如下图所示:,DOM接口介绍其他接口,DOM用NodeList对象存放节点的子节点列表。Node接口的getChildNodes()方法返回这个接口的实例。实现了NamedNodeMap接口的对象中包含了可以通过名字来访问的一组节点的集合。NamedNodeMap并不是从NodeList继承过来的,它所包含的节点集中的节点是无序的。NamedNodeMap表示的是一组节点和其唯一名字的一一对应关系,这个接口主要用在属性节点的表示上。Element接口是DOM组成接口中最重要的,定义XML文档结构的是元素而不是任何其他组建。Element接口包含的方法可以取得元素前缀名、操纵元素属性和选择元素后代。,DOM读/写XML文档,为了使用XML文件中的信息,必须解析文件以创建一个Document对象。Document对象是一个接口,因而不能直接将它实例化;一般情况下,应用程序会相应使用一个工厂。准确的过程因实现而异,但是基本思想是相同的。Java环境中,解析文件是一个三步过程:创建DocumentBuilderFactory;DocumentBuilderFactory对象创建DocumentBuilder。创建DocumentBuilder;DocumentBuilder执行实际的解析以创建Document对象。解析文件以创建Document对象。,DOM生成XML文档,将xml中的数据读取到dom中的java程序例子:1、导入需要的类文件2、声明一个Document对象3、处理异常4、创建一个DocumentBuilderFactory5、得到解析器并解析XML文件,createXML.java,DOM解析XML文档-解析器设置,Java的DOM2实现允许通过以下方法控制解析器的参数:setCoalescing():决定解析器是否要将CDATA节点转换为文本,以及是否要和周围的文本节点合并。其默认值为false。setExpandEntityReferences():确定是否要展开外部实体引用。如果为true,外部数据将插入文档。其默认值为true。setIgnoringComments():确定是否要忽略文件中的注释。其默认值为false。setIgnoringElementContentWhitespace():确定是否要忽略元素内容中的空白。其默认值为false。setNamespaceAware():确定解析器是否要注意名称空间信息。其默认值为false。setValidating():默认情况下,解析器不验证文档。将这个参数设置为true可打开验证功能。,DOM解析XML文档,获取根元素一旦解析了文档并创建了一个Document,应用程序就能单步调试该结构以审核、查找或显示信息。这种导航功能是将要在Document上执行的许多操作的基础。格式良好的文档仅有一个根元素,也称为DocumentElement。通过.getDocumentElement()方法来得到根元素,DOM解析XML文档,获取节点的孩子一旦应用程序确定了根元素,它就把根元素的孩子的列表作为一个NodeList来检索。NodeList类是一系列的项,应用程序将逐个迭代这些项。NodeListgetChildNodes();,DOM解析XML文档,得到节点的第一个孩子NodegetFirstChild()得到节点的下一个兄弟NodegetNextSibling()更改节点的值通过setNodeValue(String)方法实现对元素的文本内容值的修改。,DOM解析XML文档,ParseXMLDemo1.java/ParseXMLDemo2.java,JDOM简介,JDOM是javadocumentobjectmodel的简称,JDOM兼顾了DOM和SAX的优点,它会提供适配器用来选择具体的XML解析器。JDOM是一个源代码开发的项目,它基于树型结构,利用纯Java的技术对XML文件实现解析、生成、序列化以及多种操作。/,JDOM简介,在JDOM中,XML元素就是Element的实例,XML属性就是Attribute的实例,XML文档本身就是Document的实例。因此创建一个新JDOM对象就如在Java语言中使用new操作符一样容易。JDOM使用标准的Java编码模式。只要有可能,它使用Javanew操作符而不故弄玄虚使用复杂的工厂化模式,使对象操作即便对于初学用户也很方便。,JDOM简介,JDOM与DOM相比,主要有以下两个优势:JDOM仅使用具体类而不使用接口,这就在某些方面简化了API,但是也限制了灵活性;API使用了很多Collections类,使得熟悉这些类的Java开发人员使用起来更加得心应手。,JDOM的组成,JDOM是由以下几个包组成的org.jdom.*:包含了所有的xml文档要素的java类org.jdom.adapters.*:包含了与dom适配的java类org.jdom.filter.*:包含了xml文档的过滤器类org.jdom.input.*:包含了读取xml文档的类org.jdom.output.*:包含了写入xml文档的类org.jdom.transform.*:包含了将jdomxml文档接口转换为其他xml文档接口org.jdom.xpath.*:包含了对xml文档xpath操作的类,JDom的具体使用,通过JDom创建一个xml文件步骤:1、创建根元素2、根据根元素创建文档3、给根元素添加属性4、添加元素或子元素5、删除元素6、将JDOM对象转换为xml文件,JDom的具体使用,创建文档由于所有的文档都有根元素,所以我们可以先建立一个根元素,然后通过这个元素来创建一个XML文档。创建根元素根据根元素创建文档给根元素添加属性上面的操作也可以用下面任何一句代替:,JDom的具体使用,添加元素和子元在JDOM中子元素是作为content(内容)添加到父元素里面去的,通过调用addContent(element)方法实现。而元素的文本内容通过setText(String)方法来创建。那么上面的XML中子元素的创建过程为:,JDom的具体使用,许多元素还包含子元素、说明、处理指令和其他内容,这些也可通过addContent()方法添加内容,空白符在XML中很重要,所以在JDOM如果要得到缩排整齐的元素,也应该增加相应的空白符的字符串。如下面例子的实现:,JDom的具体使用,将JDOM转化为XML文本org.jdom.output.XMLOutputter类负责将JDOM对象以流的形式输出。该类中提供了三种不同的构造函数:XMLOutputter():使用默认的格式输出。XMLOutputter(Formatformat):根据用户制定的格式输出。XMLOutputter(XMLOutputterthat):根据给的XMLOutpuut

温馨提示

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

评论

0/150

提交评论