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