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

一.概念
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. 实例代码

参考附件。

       






你可能感兴趣的:(java,xml,Excel)