首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>编程相关>XML>使用JAXP解析xml文件示例
使用JAXP解析xml文件示例
来源: 发布时间:2007-11-08 发布人: 浏览: 人次   字体: [ ]  

简介

JAXP是Java API for XML Processing的缩写。JAXP API主要的部分在javax.xml.parsers 这个包中。在这个包中,向用户提供了两个最重要的工厂类,SAXParserFactory 和DocumentBuilderFactory,相应地,提供了SAXParser 和DocumentBuilder两个类。

SAX是由XML-DEV定义的;DOM是由W3C定义的。让我们来看看这些API库。

  • javax.xml.parsers
    JAXP API, 定义个SAX和DOM的一个通用接口

  • org.w3c.dom
    定义了DOM中的所有组件

  • org.xml.sax
    定义了SAX的所有API

  • javax.xml.transform
    定义了XSLT API,使用它,你可以将XML转化为一般的可视的页面。

SAX指一种"事件驱动"的处理方式,他对XML文件连续地一个对象一个对象地操作,由于它的这个特点,所以它可以用于服务器端或者对速度有特殊要求的地方。

相比较而言DOM是个使用起来更简单些。他是将所有个XML数据全部读到内存里面,然后使用"树"结构将这些数据组织起来,用户可以对XML的数据进行任意的操作。

至于XSLT,我们在这里就不介绍太多,如果感兴趣请参考相应的资料。我们还是先看看SAX。

SAX

SAX的框架轮廓

系统是从SAXParserFactory产生parser的实例开始的。一个parser中包含了一个SAXReader对象,当这个parser调用parse方法的时候,这个reader就调用回调方法已实现这个应用;而这些方法呢?是定义在ContentHandler,ErrorHandler,DTDHandler and EntityResolver接口中的。

以下是对SAX API库的概述:

  • SAXParserFactory
    SAXParserFactory是一个根据系统属性生成parser实例的一个对象。

  • SAXParser
    SAXParser是一个定义了不同种类的parser()方法的接口。一般而言,你向parser传XML数据后,使用DefaultHandler再来处理,系统就会调用一些合适的方法来处理XML文件,这样的一种处理方法是最为简单的。

  • SAXReader
    SAXParser包含了一个SAXReader,通常你是不需要关心它的,但是当你要使用SAXReader的getXMLReader()方法的时候,你就需要配置他。简言之,SAXParser就是一个与SAX事件通讯的处理器,这样,你就可以使用自定义的handler。

  • DefaultHandler
    DefaultHandler 实现了 ContentHandler, ErrorHandler, DTDHandler, 和EntityResolver 接口 (当然其中有一些null方法), 如果你感兴趣的话,你可以在你的程序中重载它。

  • ContentHandler
    当读到XML的tag时,就会调用到这个接口中的startDocument, endDocument, startElement, 和 endElement 方法。同时,这个接口还定义了characters 和processingInstruction,方法,分别地,当parser遇到XML的element或者inline processing instruction的时候调用。

  • ErrorHandler
    当遇到不同类型的错误的时候分别调用相应的"错误"方法,这些方法包括:error,fatalError和warning。

  • DTDHandler
    该接口所定义的方法只用在处理DTD信息的时候。

  • EntityResolver
    给接口中的resolveEntity方法只在parser遇到URI标识数据的时候才调用。

更详细地api介绍,请参看SAX的官方API文档。

例子:

在我们这个例子中,我们处理一个xml文件,然后将其值set到对象中。这是一个非常常用的使用情况。以下就是我们需要处理的xml文件。

Test.xml

<?xml version="1.0" ?> 
<customers>
  <customer>
    <id>#001</id> 
    <name>Micke</name> 
    <address>Najing</address> 
  </customer>
  <customer>
    <id>#002</id> 
    <name>Car</name> 
    <address>Suzhou</address> 
  </customer>
  <customer>
    <id>#003</id> 
    <name>Jimmy</name> 
    <address>ChengDu</address> 
  </customer>
  <customer>
    <id>#004</id> 
    <name>Henry</name> 
    <address>Xi''''an</address> 
  </customer>
</customers>

这是一个非常简单的xml文件,customers中间有数个customer,每一个customer中包含三个属性id, name, address。


共3页: 上一页 1 [2] [3] 下一页
相 关 文 章   发布商链接
·小解一个简单的XMLSchema的例子
·xml数据岛绑定时的超链接处理代码
·要学会使用xmlbeans解析xml
·实例分析Xml解析校验引起的依赖问题
·XPath语法定义及其使用介绍
·目前主流的XML编程接口API介绍
·XML基础入门之架构和语法的实例讲解
·实例详解利用xml创建可分页排序的数...
·实例讲解XML包含中文字符的URL编码问...
·XML数字签名如何签署外部文件的?
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·XML数字签名如何签署外部文件
·实例讲解XML包含中文字符的UR...
·实例详解利用xml创建可分页排
·目前主流的XML编程接口API介...
·XPath语法定义及其使用介绍
·实例分析Xml解析校验引起的依
·要学会使用xmlbeans解析xml
·xml数据岛绑定时的超链接处理
·小解一个简单的XMLSchema的例
·关于xml 空格解释的核心部分...
热 门 文 章
·要学会使用xmlbeans解析xml
·xml数据岛绑定时的超链接处理...
·目前主流的XML编程接口API介...
·关于xml 空格解释的核心部分...
·实例详解利用xml创建可分页排...
·XPath语法定义及其使用介绍
·实例分析Xml解析校验引起的依...
·小解一个简单的XMLSchema的例...
·XML基础入门之架构和语法的实...
·实例讲解XML包含中文字符的UR...
·XML数字签名如何签署外部文件...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .