pull解析xml文件

来源:互联网 发布:学编程用不用面面俱到 编辑:程序博客网 时间:2024/06/08 18:32

1.新建assets文件:

拖xml文件进去

2.MainActivity:

public class MainActivity extends AppCompatActivity {    private ListView listView;    private ArrayList<Bean> list = new ArrayList<Bean>();    private Bean bean;    private ArrayList<Bean2> arrayList;    private Bean2 bean2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = (ListView) findViewById(R.id.listView);    }    public void kaishi(View view) {        ArrayList<Bean> k = Ksishijiexi();        listView.setAdapter(new ArrayAdapter<Bean>(MainActivity.this,                android.R.layout.simple_list_item_1, k));    }    private ArrayList<Bean> Ksishijiexi() {        try {            InputStream inputStream = getAssets().open("persons.xml");            XmlPullParser newPullParser = Xml.newPullParser();            newPullParser.setInput(inputStream, "utf-8");            int eventType = newPullParser.getEventType();            while (eventType != XmlPullParser.END_DOCUMENT) {                String tagname = newPullParser.getName();                switch (eventType) {                    case XmlPullParser.START_TAG:                        if ("myclass".equals(tagname)) {                            bean = new Bean();                        }                        if ("cname".equals(tagname)) {                            String cname = newPullParser.nextText();                            bean.setCname(cname);                        }                        if ("persons".equals(tagname)) {                            arrayList = new ArrayList<>();                        } else if ("person".equals(tagname)) {                            bean2 = new Bean2();                            String id = newPullParser.getAttributeValue(0);                            bean2.setId(id);                        } else if ("age".equals(tagname)) {                            String age = newPullParser.nextText();                            bean2.setAge(age);                        } else if ("name".equals(tagname)) {                            String name = newPullParser.nextText();                            bean2.setName(name);                        }                        break;                    case XmlPullParser.END_TAG:                        if ("person".equals(tagname)) {                            arrayList.add(bean2);                            bean.setPersons(arrayList);                            bean2 = null;                        } else if ("persons".equals(tagname)) {                            list.add(bean);                        }                        break;                    default:                        break;                }                eventType = newPullParser.next();            }        } catch (Exception e) {            e.printStackTrace();        }        return list;    }}


2.Bean:

public class Bean {    String cname;    ArrayList<Bean2> persons;    public Bean(String cname, ArrayList<Bean2> persons) {        this.cname = cname;        this.persons = persons;    }    public String getCname() {        return cname;    }    public void setCname(String cname) {        this.cname = cname;    }    public ArrayList<Bean2> getPersons() {        return persons;    }    public void setPersons(ArrayList<Bean2> persons) {        this.persons = persons;    }    public Bean() {    }    @Override    public String toString() {        return "Bean{" +                "cname='" + cname + '\'' +                ", persons=" + persons +                '}';    }}


3.Bean2:

public class Bean2 {    String id;    String age;    String name;    public Bean2(String id, String age, String name) {        this.id = id;        this.age = age;        this.name = name;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Bean2{" +                "id='" + id + '\'' +                ", age='" + age + '\'' +                ", name='" + name + '\'' +                '}';    }    public Bean2() {    }}