一.概念
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. 实例代码
参考附件。