pull解析xml文件

时间:2022-05-22 20:21:26
List list;private Student student;    @Override    protected voidonCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.activity_main);       //接收返回的集合List pulllist = pull();for (Student student : pulllist) {System.out.println(student);}    }private List pull() {try {//得到解析器XmlPullParser pullParser = Xml.newPullParser();      //得到路径      File dir =Environment.getExternalStorageDirectory();      File file = new File(dir,"data.xml");FileInputStream fis = new FileInputStream(file);pullParser.setInput(fis, "utf-8");//得到事件int eventType = pullParser.getEventType();//如果事件不等于文档结束,就一直让它解析   END_DOCUMENT文档结束while(eventType!=XmlPullParser.END_DOCUMENT){//得到节点的名字String name = pullParser.getName();switch (eventType) {case XmlPullParser.START_TAG:if(name.equals("persons")){list = new ArrayList();}else if (name.equals("person")) {student = new Student();}else if (name.equals("name")) {//得到标签里的内容pullParser.nextText()student.setName(pullParser.nextText());}else if (name.equals("age")) {student.setAge(pullParser.nextText());}break;case XmlPullParser.END_TAG:if("person".equals(name)){list.add(student);student=null;}break;default:break;}eventType = pullParser.next();}} catch (Exception e) {e.printStackTrace();}return list;}