package com.example.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
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;
public class SAXForDefault extends DefaultHandler {
private List<Person> plist;
private String pTag="";
private Person person;
public List<Person> getPlist() {
return plist;
}
@Override
public void startDocument() throws SAXException {
super.startDocument();
//初始化plist
plist=new ArrayList<Person>();
}
@Override
public void startElement(String uri,String localName,String qName,
Attributes attributes) throws SAXException {
super.startElement(uri,localName,qName,attributes);
if("person".equals(localName)){
for(int i=0;i<attributes.getLength();i++){
person=new Person();
person.setId(Integer.valueOf(attributes.getValue(i)));
}
}
pTag=localName;
}
@Override
public void characters(char[] ch,int start,int length)
throws SAXException {
super.characters(ch,start,length);
String data=new String(ch,length).trim();
if(!"".equals(data.trim())){
System.out.println("characters.pTag===="+pTag);
if("name".equals(pTag)){
person.setName(data);
}
if("age".equals(pTag)){
person.setAge(Integer.valueOf(data));
}
}
}
@Override
public void endElement(String uri,String qName)
throws SAXException {
super.endElement(uri,qName);
if("person".equals(localName)){
plist.add(person);
person=null;
}
pTag=null;
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
}
}
|