android 利用pull解析xml数据
数据如下
<videoNews> <c:forEach items="${videos}" var="video" > <news id="${video.getId() }" > <title>${video.getName() }</title> <time>${video.getTime() }</time> </news> </c:forEach> </videoNews>
获取inputstream
String path="http://222.133.40.188:8080/androidServer/test"; URL url=new URL(path); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setRequestMethod("GET"); if(connection.getResponseCode()==200){ InputStream inStream=connection.getInputStream(); //获取文件流,将文件转换为xml return parseXml(inStream); }else{ return null; }
解析inputstream--》xml
private List<News> parseXml(InputStream inStream) throws XmlPullParserException, IOException { News news=null; List<News> newsList=new ArrayList<News>(); XmlPullParser pull=Xml.newPullParser(); pull.setInput(inStream, "utf-8"); int event=pull.getEventType(); while(event!=XmlPullParser.END_DOCUMENT){ switch (event) { case XmlPullParser.START_TAG: if("news".equals(pull.getName())){ int id=Integer.parseInt(pull.getAttributeValue(0)); news=new News(); news.setId(id); }else if("title".equals(pull.getName())){ String name=pull.getText(); news.setName(name); }else if("time".equals(pull.getName())){ String time=pull.getText(); news.setTime(time); } break; case XmlPullParser.END_TAG: if("news".equals(pull.getName())){ newsList.add(news); } break; } event=pull.next(); } return newsList; }