java解析sax_Java基础之SAX解析XML

1. Java解析XML简介

Java库中提供了两种XML解析器:

像文档对象模型(Document Object Model,DOM)解析器这的树型解析器(tree parse),它们将读入的XML文档转换成树结构。

像XML简单API(Simple API for XML,SAX)解析器这样的流机制解析器(streaming parser),它们在读入XML文档时生成相应的事件。

2. SAX简介

SAX解析器在解析XML输入数据的各个组成部分时会报告事件,但不会以任何方式存储文档,而是由事件处理器建立相应的数据结构。实际上DOM解析器是在SAX解析器的基础上构建的,它在接收到解析器事件时构建DOM树。

3. 使用SAX解析器

8df626ea70ed

SAX解析器架构图

在使用SAX解析器时,需要一个处理器来为各种解析器事件定义事件动作。DefaultHandler接口定义了若干个在解析文档时解析器会调用的回调方法。下面是最重要的几个方法:

startElement和endElement在每当遇到起始或终止标签时调用。

characters在每当遇到字符数据时调用。

startDocument和endDocument分别在文档开始和结束时各调用一次。

例如,在解析以下片段时:

韩信

25

解析器会产生以下回调:

1)startElement,元素名:person

2)startElement,元素名:name ,属性:type="string"

3)characters,内容:韩信

4)endElement,元素名:name

5)startElement,元素名:age

6)characters,内容:25

7)endElement,元素名:age

8)endElement,元素名:person

处理器必须覆盖这些方法,让它们执行在解析文件时我们想让它们执行的动作。

下面通过一个简单的demo体会SAX解析XML的过程。

3.1 准备xml

首先准备person.xml,内容如下

韩信

25

李白

23

3.2 解析代码

获取解析工厂

从解析工厂获取解析器

得到解读器

设置内容处理器

读取xml的文档内容

package cn.lastwhisper.javabasic.Sax;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.XMLReader;

import org.xml.sax.helpers.DefaultHandler;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import java.io.IOException;

/**

* @author lastwhisper

* @desc SAX方式解析xml文件

* @email gaojun56

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值