package study;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
/**
* @author yi
* XMLPull 解析XML
*/
public class TP {
public static void main(String[] args) throws XmlPullParserException,
IOException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(new FileInputStream("test.xml"), "utf-8");
int type = parser.getEventType();
List<Person> list = null;
Person p = null;
while (type != 1) { // 1->文档结束 4->文本内容(getText())
String name = parser.getName();
switch (type) {
case 0:// 文档开始
list = new ArrayList<Person>();
break;
case 2:// 标签开始
if ("person".equals(name)) {
p = new Person();
}
if ("name".equals(name)) {
p.setName(parser.nextText());
} else if ("age".equals(name)) {
p.setAge(Integer.parseInt(parser.nextText()));
} else if ("type".equals(name)) {
p.setType(parser.nextText());
}
break;
case 3:// 标签结束
if ("person".equals(name)) {
list.add(p);
}
break;
}
type = parser.next();
}
System.out.println(list);
}
}
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
/**
* @author yi
* XMLPull 解析XML
*/
public class TP {
public static void main(String[] args) throws XmlPullParserException,
IOException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(new FileInputStream("test.xml"), "utf-8");
int type = parser.getEventType();
List<Person> list = null;
Person p = null;
while (type != 1) { // 1->文档结束 4->文本内容(getText())
String name = parser.getName();
switch (type) {
case 0:// 文档开始
list = new ArrayList<Person>();
break;
case 2:// 标签开始
if ("person".equals(name)) {
p = new Person();
}
if ("name".equals(name)) {
p.setName(parser.nextText());
} else if ("age".equals(name)) {
p.setAge(Integer.parseInt(parser.nextText()));
} else if ("type".equals(name)) {
p.setType(parser.nextText());
}
break;
case 3:// 标签结束
if ("person".equals(name)) {
list.add(p);
}
break;
}
type = parser.next();
}
System.out.println(list);
}
}