科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道透视:进行 XML 数据处理的Java API

透视:进行 XML 数据处理的Java API

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

从Java1.4开始,大多数的XML处理任务可以在标准版本的类中得以处理,而且Java1.5还添加了很多新工具。

作者:William Brogden 来源:IT专家网 2008年4月20日

关键字: 处理 数据 XML java

  • 评论
  • 分享微博
  • 分享邮件
曾经有一段时期,程序员们在尝试使用Java编程来处理XML文档,他们必须从Sun公司、Apache软件组织或者从其他的来源中到处搜寻一个或更多的库文件,并且把这些库添加到他们的Java程序环境中。无论如何,从Java1.4开始,大多数的XML处理任务可以在标准版本的类中得以处理,而且Java1.5还添加了很多新工具。如果你正在寻找一个升级你的Java开发工具到1.5版本的理由的话,那么它可以进行XML文档处理的能力就应该是你所需要的全部。

  对XML进行处理基本上划分为两种方式:一次性不间断地读入整个文档,以及分单元的连续地读取文档。Java为进行XML 数据处理提供Java API或者提供JAXP API,它包括一个能够对这两种方式进行处理的标准API。JAXP 1.3是最新的版本,于2004年9月最终定下来。它是在Java1.5标准版本中实现的。

  JAXP被设计成为一个独立执行的、便携式的API,也就是说:任何经销商的语法分析工具包,只要它们是符合API规范的,都可以嵌入到一个写API的程序中去。实际上,你很有可能找到符合Java标准版本的语法分析程序以此来满足需要。

  大多数人很容易就掌握了文件对象模型(Document Object Model)或者称为DOM,因为它表示成为一个分层的或者是“树”状的结构,就像是在HTML和XHTML文档中使用的一样。使用这种方式,整个文档在读入内存的时候,他的每一个节点都是可以被检查和监控的。监控DOM的关键Java包是org.w3c.dom,其中包含的“ org.w3c”反映出整体实现过程是遵守万维网协会的XML文件对象模型 (DOM)标准(World-Wide Web Consortium XML DOM standard)的。

  在org.w3c.dom包中主要的接口是节点Node。在一个DOM 表述中,XML文档中的所有元素都是继承Node接口或者子接口的对象。举例说明,有这样一些接口代表元素、属性、正文以及注释。那么它的DOM表述包含一个互相联系的Java对象的集合,并以此来表示整个XML文档的内容。为节点接口服务的JavaDocs有一个表格,当实现这些接口时,它是用来显示对象的属性的。当你使用DOM写Java程序之前应该熟悉这个表格。

  DOM编程模型的优势在于每个元素都可以被有效地定位、监控并且修改。那么编程时使用DOM的缺点是需要处理时间和内存。甚至你仅仅只是读入XML文档的一个简单的元素,那么你也必须把整个文档读入内存中并且进行解析。随着文档越来越大,DOM处理会变得越来越不实用。

  使用连续的语法分析并不像前一种方式那样明显,但是它会提供许多的好处。一个连续的语法分析把整个文档分成单元,并且每次只处理一个元素。由程序员决定需要保留哪些信息以及忽略哪些信息。在JAXP库中的连续的语法分析称为XML的简单API或者SAX (Simple API for XML)。David Megginson开发出在W3C之外的为Java编程使用的SAX。在Java库中SAX编程的关键包是org.xml.sax。

  一个SAX语法分析程序在XML文档中是这样工作的,当它遇到元素时,它便生成代表这个元素的事件。SAX处理程序包含创建类和方法,并且使用这些类和方法来处理事件、提取所需信息。

  Java标准版本提供一些其他的与XML相关API,以此来确保在Java与XML共同使用时可以更加简单快速。所有的这些工具都是建立在JAXP这个基础之上的。那么,其他的文章将会对这些先进工具做出进一步的讨论。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章