SAX适用于只读取XML文件内容的情况,因为SAX是一种边读边解析的模式,所以不需要直接将XML文件直接塞入内存,读取速度也更快,但是只能读。
SAX解析主要有两个部分:①解析器②事件处理器
过程:
// 创建解析器工厂、获取解析器
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
// 创建xml读取器,绑定事件处理器
XMLReader reader = parser.getXMLReader();
GetStuInfoHandler stuHandler = new GetStuInfoHandler();
reader.setContentHandler(stuHandler);
reader.parse("src/com/keixn/day3/stu_info.xml");
而读取器绑定的事件处理器需要继承ContentHandler接口或者继承他的子类(常用),然后重写需要的方法。这个事件处理器当读取器读取xml文件内容时便会触发相应的方法。
下面使用SAX解析XML文件,并将获取的内容封装成JavaBean便于数据处理:
package com.keixn.day3;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXP