上一篇文章使用了DOM解析XML文件,本篇文章将使用SAX解析XML。
DOM与SAX解析的不同之处在于:DOM解析会将XML全部加载到内存中,再进行解析;而SAX解析有一个Handler,该Handler将对每个节点逐个进行解析。
SAX解析的步骤:
- 通过SAXParserFactory的静态方法newInstance()获取SAXParserFactory的实例。
- 通过SAXParserFactory实例的newSAXParser()方法获取SAXParser的实例。
- 创建一个类,继承DefaultHandler,并重写startElement()方法(用来遍历xml的开始节点)、endElement()方法(用来遍历xml的结束节点)、startDocument()方法(用来标志解析开始)、endDocument()方法(用来标志解析结束)
这里使用的XML文件和Book类与DOM解析时的完全相同,这里就不再赘述,直接给出代码:
books.xml:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">
<name>冰与火之歌</name>
<author>乔治马丁</author>
<price>89</price>
</book>
<book id="2">
<name>安徒生童话</name>
<author>安徒生</author>
<price>24</price>
</book>
</bookstore>
Book.java:
package domain;
public class Book {
private int id;
private String name;
private String author;
private float price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;