`
O.Lions
  • 浏览: 37375 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA操作XML的四种归类

    博客分类:
  • J2EE
阅读更多
一:  DOM(JAXP Crimson解析器)

     DOM是用与平台和语言无关的方式表示XML文档的官方W<st1:chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">3C</st1:chmetcnv>标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。

<o:p>二:SAX</o:p>

<o:p>   SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。<o:p></o:p></o:p>

    选择DOM还是选择SAX 对于需要自己编写代码来处理XML文档的开发人员来说, 选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。<o:p></o:p>

    DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。<o:p></o:p>

    SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag.特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。<o:p></o:p>

<o:p>三 : JDOM</o:p>

<o:p>   JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一个Java特定模型,JDOM一直得到大力推广和促进。正在考虑通过“Java规范请求JSR<st1:chmetcnv w:st="on" unitname="”" sourcevalue="102" hasspace="False" negative="True" numbertype="1" tcsc="0">-102”</st1:chmetcnv>将它最终用作“Java标准扩展。从2000年初就已经开始了JDOM开发。<o:p></o:p></o:p>

    JDOMDOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

   JDOM文档声明其目的是使用20%(或更少)的精力解决80%(或更多)Java/XML问题(根据学习曲线假定为20%)。JDOM对于大多数Java/XML应用程序来说当然是有用的,并且大多数开发者发现APIDOM容易理解得多。JDOM还包括对程序行为的相当广泛检查以防止用户做任何在XML中无意义的事。然而,它仍需要您充分理解XML以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习DOMJDOM接口都更有意义的工作。<o:p></o:p><o:p></o:p>

    JDOM自身不包含解析器。它通常使用SAX2解析器来解析和验证输入XML文档(尽管它还可以将以前构造的DOM表示作为输入)。它包含一些转换器以将JDOM表示输出成SAX2事件流、DOM模型或XML文本文档。JDOM是在Apache许可证变体下发布的开放源码。<o:p></o:p>

四: DOM4J

    虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。从2000下半年开始,它就一直处于开发之中。<o:p></o:p>

    为支持所有这些功能,DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。<o:p></o:p>

    在添加灵活性、XPath集成和对大文档处理的目标时,DOM4J的目标与JDOM是一样的:针对Java开发者的易用性和直观操作。它还致力于成为比JDOM更完整的解决方案,实现在本质上处理所有Java/XML问题的目标。在完成该目标时,它比JDOM更少强调防止不正确的应用程序行为。<o:p></o:p>

    DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连SunJAXM也在用DOM4J.<o:p></o:p>

分享到:
评论

相关推荐

    java读取XML文件内容的四种方法[归类].pdf

    Java 读取 XML 文件内容的四种方法 Java 语言提供了多种方法来读取 XML 文件内容,以下是四种常见的方法: 1. DOM(Document Object Model) DOM 是一种基于树的模型,它将 XML 文档表示为一个层次结构的节点或...

    Java解析XML文档[归类].pdf

    总结来说,Java中的DOM解析XML是一种常用的方法,适用于需要全面访问和操作XML数据的情况。通过`DocumentBuilderFactory`和`DocumentBuilder`,我们可以轻松地解析XML文件并遍历其结构。然而,根据需求和文件大小,...

    Java实训2[归类].pdf

    【Java实训2[归类].pdf】是一个关于Java软件开发的实训项目,主要目标是构建一个基于控制台的购物系统。这个系统包含了多种功能,涵盖了会员管理、购物结算、活动回馈等多个方面。以下是该实训项目的主要知识点: 1...

    Java学习路线图[归类].pdf

    这个路线图分为四个主要部分,每个部分都包含了不同的主题和学习目标,涵盖了从基础到高级的Java开发技能。 第一部分是J2SE(Java 2 Standard Edition)的学习,大约需要13天的时间。这部分主要关注Java语言的基础...

    JAVAjdk环境配置[归类].pdf

    J2EE1.3引入了JMS(Java Message Service)、J2EE连接器技术和XML解析API等,增强了Web组件和EJB组件的功能,同时也引入了CMP(容器管理持久性)组件模型和MDB(消息驱动Bean)。J2EE1.4则进一步加强了对Web服务的...

    C#调用JAVA的WebService方法[归类].pdf

    这时,我们可以采用一种更加灵活的方法,即手动构建并发送XML请求。 1. 使用**soapUI**工具进行测试:soapUI是一款强大的SOAP和REST测试工具,它可以模拟调用WebService,并自动生成对应的XML请求。这为我们提供了...

    java虚拟机环境配置[归类].pdf

    Java虚拟机环境配置是软件开发中的基础步骤,尤其对于Java编程而言至关重要。本文将详细讲解如何配置Java开发环境,包括JDK和Tomcat的下载、安装以及验证。 首先,我们需要下载JDK和Tomcat。JDK是Java Development ...

    java持久层API[归类].pdf

    Java持久性API(Java Persistence API,简称JPA)是一种为Java开发人员提供的对象关系映射工具的标准,用于管理Java应用程序中的关系型数据库事务。JPA通过提供一套标准API,使得开发人员可以方便地实现数据的持久化...

    java课程纲目[归类].pdf

    此部分课程关注于在Linux环境下进行Java开发,包括Linux基础操作,Oracle10g应用,以及基于Linux的项目开发实训。学员将学习如何在Linux系统中配置JDK,使用命令行工具进行编程,以及与数据库系统的集成。 **理论...

    Java调用paoding分词器对抓取的xml里面的新闻按照出现的词频进行分类

    在本项目中,我们利用Java编程语言调用了Paoding分词器来处理抓取到的XML格式的新闻数据。Paoding分词器是一款高效的中文分词工具,它为Java开发者提供了方便的接口,用于实现对中文文本的智能分析,特别适合于海量...

    基于JDK并发机制的Java多线程归类处理闩ConcurrentLatch设计源码

    本项目是采用JDK并发机制的Java多线程归类处理闩设计源码,包含29个文件,包括17个Java源文件、8个XML配置文件、1个gitattributes文件、1个iml文件、1个LICENSE文件、1个Markdown文件。ConcurrentLatch工具为多线程...

    java题目[归类].pdf

    J2EE全称为Java 2 Platform, Enterprise Edition,它为开发者提供了丰富的API和技术支持,如EJB(Enterprise JavaBeans)、Servlets API、JSP(Java Server Pages)以及XML技术。J2EE不仅仅是一个产品,而是一种利用...

    JAVA框架面试题汇总[归类].pdf

    Java框架中的SpringMVC是一个广泛使用的轻量级Web应用程序框架,它提供了强大的MVC(Model-View-Controller)架构来构建可维护、可扩展的Web应用。以下是对SpringMVC框架的一些关键知识点的详细解释: 1. **...

    java调用WebService(客户端)[归类].pdf

    本文将详细介绍如何使用Java作为客户端调用WebService,包括四种主要的调用方式:HttpGet、HttpPost、HttpSoap以及Documentation,并提供一个使用Apache CXF库的示例代码。 1. **HttpGet调用** HttpGet方式通过...

    毕业论文设计基于xmlschema的数据存储方案.doc

    通过自动化的工具,可以从XML Schema生成相应的Java类,从而实现面向对象的存取操作,提高开发效率和准确性。 创建XML Schema的首要任务是设计一个满足需求的Schema文件。在设计时,应考虑数据字段的组织结构,确保...

    纯java邮件服务器james配置说明归类.pdf

    Apache James是一款开源的、完全由Java编写的邮件服务器软件,提供了完整的邮件收发解决方案。它不仅是一个邮件服务器,还包含了诸如POP3、SMTP和NNTP等协议的支持,使其成为一个功能全面的邮件系统。在本文中,我们...

    ssh对应的配置文件(xml)信息详解[归类].pdf

    SSH,全称Secure Shell,是一种网络协议,用于安全地远程登录到服务器进行操作。在Java Web开发中,SSH经常指的是Struts、Spring和Hibernate这三个框架的组合,它们分别是MVC模式中的视图、业务逻辑和数据持久化层的...

    syslog协议发送日志(java)

    syslog协议是网络设备、操作系统和应用程序之间广泛使用的标准日志记录协议,它允许系统将日志消息发送到中央日志服务器,便于管理和分析。在Java环境中实现syslog协议发送日志,我们可以利用相关的库或者自定义编程...

    fmath--java.jar.zip

    1. **mathml-java-3.1.jar**:这是MathML(Mathematical Markup Language)的Java实现,MathML是一种用于表示数学和科学表达式的XML标准。这个库可能提供了解析和生成MathML的能力,使得Fmath能够处理网页中的数学...

    java调用.net写的Webservice[归类].pdf

    Java调用.NET编写的Web服务主要是通过SOAP协议进行通信,这是一种基于XML的远程过程调用标准。本文将详细探讨如何使用Java的Axis1.x库来调用.NET WebService,并介绍在此过程中可能遇到的问题及解决方案。 首先,让...

Global site tag (gtag.js) - Google Analytics