package?XMLSAX2;
import?java.util.ArrayList;
import?org.xml.sax.Attributes;
import?org.xml.sax.SAXException;
import?org.xml.sax.helpers.DefaultHandler;
public?class?SAXParserHander?extends?DefaultHandler?{
int?studentindex=0;
String?value=null;
Person?person=null;
private?ArrayList<Person>?personList=new?ArrayList<Person>();
public?ArrayList<Person>?getPersonList()?{
return?personList;
}
@Override
public?void?startElement(String?arg0,?String?arg1,?String?arg2,
Attributes?arg3)?throws?SAXException?{
//?TODO?Auto-generated?method?stub
super.startElement(arg0,?arg1,?arg2,?arg3);
if(arg2.equals("student")){
?person=new?Person();
studentindex++;
System.out.println("=====開始遍歷第"+studentindex+"學(xué)生=====");
}
if(arg2.equals("name")){
System.out.print("屬性名為:"+arg2);
}
if(arg2.equals("age")){
System.out.print("屬性名為:"+arg2);
}
if(arg2.equals("number")){
System.out.print("屬性名為:"+arg2);
}
}
@Override
public?void?endElement(String?arg0,?String?arg1,?String?arg2)
throws?SAXException?{
//?TODO?Auto-generated?method?stub
super.endElement(arg0,?arg1,?arg2);
if(arg2.equals("student")){
personList.add(person);
System.out.println(person.getAge()+"??"+person.getName()+"??"+person.getNumber());
System.out.println("=====結(jié)束遍歷第"+studentindex+"學(xué)生=====");
person=null;
}
if(arg2.equals("name")){
person.setName(value);
}
if(arg2.equals("age")){
person.setAge(value);
}
if(arg2.equals("number")){
person.setNumber(value);
}
}
@Override
public?void?startDocument()?throws?SAXException?{
//?TODO?Auto-generated?method?stub
super.startDocument();
System.out.println("開始遍歷xml文件");
}
@Override
public?void?endDocument()?throws?SAXException?{
//?TODO?Auto-generated?method?stub
super.endDocument();
System.out.println("結(jié)束遍歷xml文件");
}
@Override
public?void?characters(char[]?arg0,?int?arg1,?int?arg2)?throws?SAXException?{
//?TODO?Auto-generated?method?stub
super.characters(arg0,?arg1,?arg2);
value=new?String(arg0,arg1,arg2);
if(!value.trim().equals("")){
System.out.println("-----屬性值為:"+value);
}
}
}
測(cè)試的時(shí)候?xml內(nèi)容可以存入對(duì)象當(dāng)中,可是new?SAXParserHander().getArrayList().size()?輸出為0?
2016-07-11
?SAXParserHander類里頭getArrayList()的方法在哪?