import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import com.hgz.day12pullresolver.bean.BookBean;
import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnPullResolver = (Button) findViewById(R.id.btnPullResolver);
btnPullResolver.setOnClickListener(new OnClickListener() {
private ArrayList<BookBean> books;
private BookBean book;
@Override
public void onClick(View v) {
try {
// step1:创建一个pull解析器对象
XmlPullParser parser = Xml.newPullParser();
// step2:开始解析xml
InputStream is = getAssets().open("Books.xml");
parser.setInput(is, "utf-8");
int type = parser.getEventType();
// 判断是否已经读取xml文档的结尾
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if ("Books".equals(parser.getName())) {
// 创建集合
books = new ArrayList<BookBean>();
} else if ("Book".equals(parser.getName())) {
// 创建Book对象
book = new BookBean();
} else if ("name".equals(parser.getName())) {
// 取出name标签里面的内容
String name = parser.nextText();
book.setName(name);
} else if ("price".equals(parser.getName())) {
String price = parser.nextText();
book.setPrice(price);
} else if ("author".equals(parser.getName())) {
String author = parser.nextText();
book.setAuthor(author);
}
break;
// 结束标签
case XmlPullParser.END_TAG:
if ("Book".equals(parser.getName())) {
// 添加到集合
books.add(book);
}
break;
default:
break;
}
// 让pull解析器对象往下移动一行
type = parser.next();
}
System.out.println(books.toString());
Toast.makeText(MainActivity.this, books.toString(), 0)
.show();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
//Bean类
public class BookBean {
private String name;
private String price;
private String author;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public String toString() {
return "BookBean [name=" + name + ", price=" + price + ", author="
+ author + "]";
}
}