Java解析XML文档(二):sax读取xml文件导出excel

本文详细介绍了基于事件的XML解析API SAX的基本概念、解析流程,并演示了如何利用SAX解析XML数据并导出为EXCEL格式。重点包括使用javax.xml.parsers和org.xml.sax包构建解析器,实现特定的事件处理逻辑,以及使用jxl.jar库将解析结果写入EXCEL文件。通过示例代码展示了具体的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.概念
SAX (Simple API for XML),基于事件的XML简单API,也是解析XML文档的两种API之一。

二.sax解析

1.使用到的包:

javax.xml.parsers:解析器工厂工具
org.xml.sax :提供了核心 SAX API


例如:
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;


2.解析流程

首先构建我们的解析器,需要继承org.xml.sax.helpers.DefaultHandler类,覆盖其中的方法。接着获取SAX工厂对象,从此工厂中获取SAX解析,将解析器和解析对象(xml文件)联系起来,开始解析,最后获取解析成功后的属性即可。

补充说明:
在对读入的xml文件进行解析时,当读到相应的内容,会抛出对应的事件,由ContentHandler调用其相应的方法进行响应。DefaultHandler实现了此接口ContentHandler,所以DefaultHandler才作为SAX2 事件处理程序的默认基类。

常用到的方法:
(1)characters(char[] ch, int start, int length)

    接收元素中字符数据的通知,可以在此方法中,将<xxx></xxx>之间的值加入到属性中。

(2)startElement(String uri, String localName, String qName, Attributes attributes)
     接收元素开始的通知,参数中的uri就是名域, localName是标签名,qName是标签的修饰前缀,attributes是这个标签所包含的属性列表。

(3)endElement(String uri, String localName, String qName)
     接收元素结束的通知。

3.导出EXCEL

jxl.jar :提供了java操作excel表格的工具类库

例如:

import jxl.*;   
import jxl.write.*;
import jxl.write.Number;

代码参考:

WritableWorkbook plan = Workbook.createWorkbook(new File("plan.xls"));  
 

//创建第一分页,从0开始

                
WritableSheet sheet = book.createSheet("name1", 0); 


//参数分别为:列,行,值,此表示填充第1列第1行的单元格,下标从0开始


sheet.addCell(new Label(0, 0, "TYPE_ID")); 

...

plan.write();   
plan.close();

 

4. 实例代码

参考附件。

       






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值