XML的pull方法

package com.bai.pull;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
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.TextView;
import com.bai.pull.bean.Book;
public class MainActivity extends Activity {
 private TextView tv;
 private Button bu;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //查找控件
  tv=(TextView)findViewById(R.id.textView1);
  bu=(Button)findViewById(R.id.button1);
  //监听按钮
  bu.setOnClickListener(l);
 }
 OnClickListener l=new OnClickListener() {
  
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   List<Book> list = pulljiexi();
   tv.setText(list.toString());
  }
 };
 
 //pull解析方法
 public List<Book> pulljiexi(){
  try {
   //创建解析器
   XmlPullParser parser=Xml.newPullParser();
   InputStream inputStream=getAssets().open("Books.xml");
   //设置使用什么编码把文件读取到内存
   parser.setInput(inputStream, "utf-8");
   //开始解析XML
   int type=parser.getEventType();
   //定义集合存储数据
    List<Book> list = null;
    Book book = null;
   //判断读取行数没有走到末尾。
   while(type!=XmlPullParser.END_DOCUMENT){
    
    switch (type) {
    //遇到开始标签
    case XmlPullParser.START_TAG:
     //判断是否读取到Books开始标签
     if("Books".equals(parser.getName())){
      //创建集合
      list = new ArrayList<Book>();
     }else if("Book".equals(parser.getName())){//判断是否读取到Book开始标签
      //创建实体类对象
      book = new Book();
     }else if("name".equals(parser.getName())){
      //获取parser内的name标签对应的值
      String name=parser.nextText();
      book.setName(name);
     }else if("price".equals(parser.getName())){
      //获取parser内的price标签对应的值
      String price=parser.nextText();
      book.setPrice(price);
     }else if("author".equals(parser.getName())){
      //获取parser内的author标签对应的值
      String author=parser.nextText();
      book.setAuthor(author);
     }
     
     break;
    case XmlPullParser.END_TAG:
     if("Book".equals(parser.getName())){
      list.add(book);
     }
     break;
    }
    //读取下一个
    type=parser.next();
   }
   return list;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
  
 }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值