Pull解析(xml解析)

来源:互联网 发布:电压无功优化的目的 编辑:程序博客网 时间:2024/05/22 07:55
package com.example.day_12_2pull;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserFactory;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.ListView;public class MainActivity extends Activity {    private List<Bean> list = new ArrayList<Bean>();    private Bean bean;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView lv = (ListView) findViewById(R.id.lv);        Youhua adapter = new Youhua(this, list);        lv.setAdapter(adapter);        try {            //得到assets            InputStream wenjian = getAssets().open("persons.xml");            //创建工厂            XmlPullParserFactory gongchang = XmlPullParserFactory.newInstance();            //通过工厂解析pull            XmlPullParser pull = gongchang.newPullParser();            //pull解析文件            pull.setInput(wenjian, "utf-8");            //查询第一行代码            int diyi = pull.getEventType();            while (diyi != XmlPullParser.END_DOCUMENT) {                switch (diyi) {                    //开始标签                    case XmlPullParser.START_TAG:                        //通过pull得到名字                        String name = pull.getName();                        //先查询数组                        if (name.equals("person")) {                            bean = new Bean();                        }if (name.equals("name")) {                        bean.name = pull.nextText();                    }if (name.equals("arg")) {                        bean.arg = pull.nextText();                    }                        break;                    //结束标签                    case XmlPullParser.END_TAG :                        if (pull.getName().equals("person")) {                            list.add(bean);                        }                        break;                    default:                        break;                }                //开始执行下一行                diyi = pull.next();            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

原创粉丝点击