SaxParser用来读取xml文件,在读取xml的时候根据事件来回调处理函数,它本身不是全部读取xml文件到内存,因此效率较高,并且不会占用很多内存。
首先创建SaxParser对象,使用工厂方法创建:
SAXParserFactory.newInstance().newSAXParser();
需要给该对象添加回调对象:
sap.parse(new DefaultHandler()
filename.openStream(), new DefaultHandler()
{
private int field1;
private String field2;
............
private Vector<Struct> fieldN;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes){
if(qName.compareTo("tab1") == 0){
field1 = attributes.getValue("tab2");
}
else if(qName.compareTo("tab2") == 0){
fieldN = new Vector<Struct>();
}
...................
}
@Override
public void endElement(String uri, String localName, String qName){
if(qName.compareTo("tab1") == 0){
fieldN.add(field1);
field1 == 0;
field2 == null;
}
if(qName.compareTo("tab2") == 0){
processVector(fieldN);
}
}
}
);