1 package com.example.pullparser;
2
3 import java.io.FileInputStream;
4
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 import org.xmlpull.v1.XmlPullParser;
11 import org.xmlpull.v1.XmlPullParserException;
12
13 import com.example.bean.Book;
14 import com.example.day04_05pullparser.R;
15
16 import android.app.Activity;
17 import android.os.Bundle;
18 import android.util.Log;
19 import android.util.Xml;
20 import android.view.Menu;
21 import android.view.MenuItem;
22 import android.view.View;
23
24 public class MainActivity extends Activity {
25 public static String TAG ="pullParser";
26
27
28 @Override
29 protected void onCreate(Bundle savedInstanceState) {
30 super.onCreate(savedInstanceState);
31 setContentView(R.layout.activity_main);
32 }
33
34
35 public void parsebyPull(View v){
36
37 XmlPullParser pullParser = Xml.newPullParser();
38 List<Book> bookList = new ArrayList<Book>();
39 Book book = null;
40
41 try {
42 InputStream in = new FileInputStream("data/data/com.example.day04_05pullparser/files/books.xml");
43 pullParser.setInput(in, "UTF-8");
44
45 int evenType = pullParser.getEventType();
46
47 while(evenType != XmlPullParser.END_DOCUMENT){
48
49 if(evenType == XmlPullParser.START_DOCUMENT){
50 Log.i(TAG, "START_DOCUMENT");
51 }
52 if(evenType == XmlPullParser.START_TAG){
53 Log.i(TAG,"START_TAG" + pullParser.getName());
54 if("book".equals(pullParser.getName())){
55 book.setBookname(pullParser.nextText());
56 Log.i(TAG, book.getBookname());
57 }
58 if("bookname".equals(pullParser.getName())){
59 book.setAuthor(pullParser.nextText());
60 Log.i(TAG, book.getAuthor());
61 }
62 if("author".equals(pullParser.getName())){
63 book.setAuthor(pullParser.nextText());
64 Log.i(TAG, book.getAuthor());
65 }
66 if("price".equals(pullParser.getName())){
67 book.setPriceString(pullParser.nextText());
68 Log.i(TAG, book.getPriceString());
69 }
70
71 }
72 if(evenType == XmlPullParser.TEXT){
73 Log.i(TAG, "TEXT" + pullParser.getText());
74 }
75 if(evenType == XmlPullParser.END_TAG){
76 Log.i(TAG, "END_TAG" + pullParser.getName());
77
78 if("book".equals(pullParser.getName())){
79 bookList.add(book);
80 book = null;
81 }
82 }
83 evenType = pullParser.next();
84 Log.i(TAG, "eventType:" + evenType);
85
86 }
87
88 if(evenType == XmlPullParser.END_DOCUMENT){
89 Log.i(TAG, "END_DOCUMENT");
90 }
91 for(Book book2:bookList){
92 Log.i(TAG, book2.toString());
93 }
94 } catch (XmlPullParserException e) {
95 // TODO Auto-generated catch block
96 e.printStackTrace();
97 } catch (IOException e) {
98 // TODO Auto-generated catch block
99 e.printStackTrace();
100 }
101 }
102 }