pull解析xml文件

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() {
    }
}


猜你喜欢

转载自blog.csdn.net/yuejunfei/article/details/76577651