Android中有三种解析XML的方式:
SAX(Simple API XML)。
DOM(Document Objrect Model)。
以及Android推荐的Pull解析方式。
今天就先讲一下我对Pull解析的认识:
先写一个学生.XML
xiaoming
15
m
xiaogang
22
m
xioahong
222
m
然后开始解析:
public class Pulljiexi {
public List
getStudents(InputStream is) throws Exception {
List
students = null;
Student student = null;
//得到Pull解析器
XmlPullStudent student = Xml.newPullParser();
parser.setInput(is, "UTF-8");
//得到第一个事件类型
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
//文档开始事件
case (XmlPullParser.START_DOCUMENT):
//创建一个student集合
students = new ArrayList
();
break;
//遇到标签开始
case (XmlPullParser.START_TAG):
String tagName = parser.getName();
if ("students".equals(tagName)) {
student = new Student();
students.setId(new Integer(parser.getAttributeValue(0)));
}
//如果student已经创建完成
if (student != null) {
//节点为name
if ("name".equals(tagName))
student.setName(new String(student.nextText()));
//节点为age
else if ("age".equals(tagName))
student.setAge(new Short(student.nextText()));
//节点为gender
else if ("gender".equals(tagGender))
student.setGender(new Short(student.nextText()));
}
break;
case (XmlPullParser.END_TAG):
//student标签结束
if ("student".equals(parser.getName())) {
//添加到集合
students.add(student);
//置空
student = null;
}
break;
}
//下一个事件
eventType=parser.next();
}
return students;
}
以上就是简单的pull解析
望大神批评!