昨天练习了SAX解析XML之后,今天晚上抽空写了PULL方式解析XML。
第一步,也是创建XML文件的解析对象:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance() ;
XmlPullParser parser = factory.newPullParser() ;
第二步,创建指向被解析文件的输出流
InputStream is = new FileInputStream("student.xml") ; // PULL解析对象使用该流的时候,需要对其进行转码。如下所示:
第三步, 调用XMLPullParser的对象,为解析XML文件做准备
parser.setInput(is,"utf-8"); //使用UTF-8格式,防止出现汉字时乱码
第四步,开始解析文件
Student stu = null ;
List<Student> list = null ;
int eventType = parser.getEventType() ;
while(eventType != 1){
String tag = parser.getName() ;
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
System.out.println("开始解析");
list = new ArrayList<Student>() ;
break;
case XmlPullParser.START_TAG:
System.out.println(parser.getText());
if("student".equals(tag)){
stu = new Student() ;
}else if("name".equals(tag)){
stu.setName(parser.nextText());
}else if ("sex".equals(tag)){
stu.setSex(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("student".equals(tag)){
list.add(stu) ;
}
tag = null ; //和SAX解析不同,这里tag=null,可有可无。PULL解析中,空格不会被读取
break ;
case XmlPullParser.END_DOCUMENT:
System.out.println("解析结束");
break ;
}
eventType = parser.next();
}
今天心情乱嘈嘈的,影响了学习的状态,但是晚上的时候,把十一的车票搞定了,开心开心~+~+pig 豆豆