package com.appassit.model; import java.io.InputStream; import java.util.ArrayList; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; public class ApkUrlParser implements UrlParser { @Override public ArrayList<DownloadInfo> parse(InputStream is) throws Exception { // TODO Auto-generated method stub ArrayList<DownloadInfo> urls = null; DownloadInfo url = null; // XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // XmlPullParser parser = factory.newPullParser(); XmlPullParser parser = Xml.newPullParser(); // 由android.util.Xml创建一个XmlPullParser实例 parser.setInput(is, "UTF-8"); // 设置输入流 并指明编码方式 int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: urls = new ArrayList<DownloadInfo>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("apk")) { url = new DownloadInfo(); } else if (parser.getName().equals("id")) { eventType = parser.next(); url.setApkid(Integer.parseInt(parser.getText())); } else if (parser.getName().equals("name")) { eventType = parser.next(); url.setFileName(parser.getText()); } else if (parser.getName().equals("icon")) { eventType = parser.next(); url.setIconPath(parser.getText()); } /*else if (parser.getName().equals("status")) { eventType = parser.next(); url.setStatus(Integer.parseInt(parser.getText())); }*/else if (parser.getName().equals("path")) { eventType = parser.next(); url.setDownloadUrl(parser.getText()); } break; case XmlPullParser.END_TAG: if (parser.getName().equals("apk")) { urls.add(url); url = null; } break; } eventType = parser.next(); } return urls; } }