package org.carelife.creader.xmlparser; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.carelife.creader.dao.VersionData; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class VersionParser { public static List<VersionData> getPersonsByParseXml(InputStream is) { // Log.i("pull parser","begin"); List<VersionData> list = null; VersionData r = null; String currentTag = null; try{ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(is, "utf-8"); int type = parser.getEventType(); while (type != XmlPullParser.END_DOCUMENT) { String typeName = parser.getName(); if (type == XmlPullParser.START_TAG) { // Log.v("TAG", "typeName=" + typeName); if ("version".equals(typeName)) { list = new ArrayList<VersionData>(); r = new VersionData(); } else if ("versioncode".equals(typeName)) { currentTag="versioncode"; } else if ("content".equals(typeName)) { currentTag = "content"; } else if ("updateurl".equals(typeName)) { currentTag = "updateurl"; } else if("control".equals(typeName)) { currentTag = "control"; } } else if (type == XmlPullParser.END_TAG) { if ("version".equals(typeName)) { list.add(r); r = null; } } else if (type == XmlPullParser.TEXT) { String s = parser.getText(); // Log.i("text",s); if ("versioncode".equals(currentTag)) { r.setVersionCode(s); currentTag = null; } else if ("content".equals(currentTag)) { r.setContent(s); currentTag = null; } else if("updateurl".equals(currentTag)){ r.setUpdate_url(s); currentTag = null; } else if("control".equals(currentTag)){ r.setControl(Integer.parseInt(s.trim())); currentTag = null; } } type = parser.next(); } // Log.v("TAG", "size=" + list.size()); }catch(Exception e){ e.printStackTrace(); } return list; } }