package cn.itcast.sax;
/**
* Created by LiJing on 2017/9/4.
*/
public class Contact {
private String name;
private int age;
private String phone;
private String email;
private String qq;
public String getName () {
return name;
}
public void setName (String name) {
this .name = name;
}
public int getAge () {
return age;
}
public void setAge (int age) {
this .age = age;
}
public String getPhone () {
return phone;
}
public void setPhone (String phone) {
this .phone = phone;
}
public String getEmail () {
return email;
}
public void setEmail (String email) {
this .email = email;
}
public String getQq () {
return qq;
}
public void setQq (String qq) {
this .qq = qq;
}
@Override
public String toString () {
return this .name+this .age+this .phone+this .email+this .qq;
}
}
<?xml version="1.0" encoding="utf-8"?>
<contactList >
<contact id ="001" group ="0611" >
<name > 张三</name >
<age > 20</age >
<phone > 134222223333</phone >
<email > zhangsan@qq.com</email >
<qq > 432221111</qq >
</contact >
<contact id ="002" >
<name > 李四</name >
<age > 20</age >
<phone > 134222225555</phone >
<email > lisi@qq.com</email >
<qq > 432222222</qq >
</contact >
</contactList >
Demo1.java
package cn.itcast.sax;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.io.File;
import java.util.List;
/**
* Created by LiJing on 2017/9/4.
*/
public class Demo1 {
public static void main (String[] args) throws Exception{
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
MyDefaultHandler handler = new MyDefaultHandler();
parser.parse(new File(".//contact.xml" ),handler);
System.out.println("********************************************" );
List<Contact> list = handler.getList();
for (Contact contact:list){
System.out.println(contact);
}
}
}
MyDefaultHandler .java
package cn.itcast.sax;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
/**
* Created by LiJing on 2017/9/4.
*/
public class MyDefaultHandler extends DefaultHandler {
private String flag = "" ;
private List<Contact> list = new ArrayList<Contact>();
private Contact contact;
public List getList (){
return list;
}
@Override
public void startDocument () throws SAXException {
super .startDocument();
}
@Override
public void startElement (String uri, String localName, String qName, Attributes attributes) throws SAXException {
if ("contact" .equals(qName)) {
contact = new Contact();
}
System.out.print("<" +qName);
if (attributes.getLength()!=0 ){
for (int i = 0 ; i<attributes.getLength();i++){
String name = attributes.getQName(i);
String value = attributes.getValue(i);
System.out.print(" " + name + "=\"" + value + "\"" );
}
}
System.out.print(">" );
flag = qName;
}
@Override
public void endElement (String uri, String localName, String qName) throws SAXException {
System.out.print("</" +qName+">" );
if ("contact" .equals(qName))
list.add(contact);
flag = null ;
}
@Override
public void characters (char [] ch, int start, int length) throws SAXException {
String context = new String(ch,start,length);
System.out.print(context);
if ("name" .equals(flag))
contact.setName(context);
if ("age" .equals(flag))
contact.setAge(Integer.parseInt(context));
if ("phone" .equals(flag))
contact.setPhone(context);
if ("email" .equals(flag))
contact.setEmail(context);
if ("qq" .equals(flag))
contact.setQq(context);
}
@Override
public void endDocument () throws SAXException {
super .endDocument();
}
}