package com.hyrt.cei.util; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.kxml2.io.KXmlParser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.util.Xml; import com.hyrt.cei.vo.AnnouncementNews; import com.hyrt.cei.vo.ClassType; import com.hyrt.cei.vo.ColumnEntry; import com.hyrt.cei.vo.Courseware; import com.hyrt.cei.vo.Forum; import com.hyrt.cei.vo.InfoNew; import com.hyrt.cei.vo.New; import com.hyrt.cei.vo.PersonCenterInf; import com.hyrt.cei.vo.PhonefunctionInf; import com.hyrt.cei.vo.Report; import com.hyrt.cei.vo.ReportColumn; import com.hyrt.cei.vo.ReportpaitElement; import com.hyrt.cei.vo.Updata; import com.hyrt.cei.vo.WeatherInfo; import com.hyrt.cei.vo.WitSea; import com.hyrt.cei.vo.funId; public class XmlUtil { public static boolean isFree; public static String parseContent(String xml) { String returnCode = ""; try { String tag_name = ""; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("content")) { returnCode = someValue; } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return returnCode; } public static String parseReturnCode(String xml) { String returnCode = ""; try { String tag_name = ""; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("returncode")) { returnCode = someValue; } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return returnCode; } public static void parsePhoneFunctionTree(String xml, List<Map<String, String>> treeData) { try { String tag_name = ""; int i = -1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("tree")) { Map<String, String> dataItem = new HashMap<String, String>(); treeData.add(dataItem); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("name")) { treeData.get(i).put("text", someValue); } if (tag_name.equals("id")) { treeData.get(i).put("id", someValue); } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static List<New> getNews(String xml) throws Exception { List<New> news = null; New n = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: news = new ArrayList<New>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("new")) { n = new New(); } if (n != null) { if (parser.getName().equals("id")) { n.setId(parser.nextText()); } else if (parser.getName().equals("time")) { n.setTime(parser.nextText()); } else if (parser.getName().equals("title")) { n.setTitle(parser.nextText()); } else if (parser.getName().equals("subhead")) { n.setSubhead(parser.nextText()); } else if (parser.getName().equals("author")) { n.setAuthor(parser.nextText()); } else if (parser.getName().equals("imagepath")) { n.setPpath(parser.nextText()); } else if (parser.getName().equals("funName")) { n.setFunname(parser.nextText()); } else if (parser.getName().equals("isfree")) { if(isFree) n.setIsfree("1"); else n.setIsfree(parser.nextText()); } } break; case XmlPullParser.END_TAG: if (parser.getName().equals("new")) { news.add(n); n = null; } break; } event = parser.next(); } return news; } public static List<PhonefunctionInf> loginUserInfo(String xml) throws Exception { List<PhonefunctionInf> ponefunctionInfs = null; PhonefunctionInf phonefunctionInf = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: ponefunctionInfs = new ArrayList<PhonefunctionInf>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("phonefunction")) { phonefunctionInf = new PhonefunctionInf(); } if (phonefunctionInf != null) { if (parser.getName().equals("id")) { phonefunctionInf.setId(parser.nextText()); } else if (parser.getName().equals("name")) { phonefunctionInf.setName(parser.nextText()); } else if (parser.getName().equals("operationimage")) { phonefunctionInf.setOperationimage(parser.nextText()); } } break; case XmlPullParser.END_TAG: if ("phonefunction".equals(parser.getName())) {// 判断结束标签元素是否是book ponefunctionInfs.add(phonefunctionInf);// 将book添加到books集合 phonefunctionInf = null; } break; } event = parser.next(); } return ponefunctionInfs; } public static ArrayList<WitSea> witSea(String xml) throws Exception { ArrayList<WitSea> witSeas = null; WitSea sea = null; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); XmlPullParser parser = Xml.newPullParser(); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: witSeas = new ArrayList<WitSea>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("bright")) { sea = new WitSea(); } if (sea != null) { if (parser.getName().equals("funid")) { sea.setFunid(parser.nextText()); } else if (parser.getName().equals("name")) { sea.setName(parser.nextText()); } else if (parser.getName().equals("operationimage")) { sea.setOperationimage(parser.nextText()); } else if (parser.getName().equals("isorder")) { sea.setIsCustom(parser.nextText()); } else if (parser.getName().equals("issuetime")) { sea.setIssuetime(parser.nextText()); } } break; case XmlPullParser.END_TAG: if ("bright".equals(parser.getName())) { witSeas.add(sea); sea = null; } break; } event = parser.next(); }// end while return witSeas; } public static String updateWitSea(String xml) throws Exception { ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); XmlPullParser parser = Xml.newPullParser(); parser.setInput(bis, "UTF-8"); String returnCode = ""; int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_TAG: if (parser.getName().equals("RETURNCODE")) { returnCode = parser.nextText(); } break; case XmlPullParser.END_TAG: break; } event = parser.next(); }// end while return returnCode; } public static void parseInitResources(String result, ColumnEntry columnEntry) { try { List<ColumnEntry> columnEntryChilds = columnEntry.getColumnEntryChilds(); String tag_name = ""; int i = -1; ByteArrayInputStream bis = new ByteArrayInputStream( result.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("phonefunction")) { ColumnEntry columnEntryChild = new ColumnEntry(); columnEntryChilds.add(columnEntryChild); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("userid")) { columnEntry.setUserId(someValue); } if (tag_name.equals("loginid")) { columnEntry.setLoginid(someValue); } if (tag_name.equals("logo")) { columnEntry.setLogo(someValue); } if (tag_name.equals("background")) { columnEntry.setBackground(someValue); } if (tag_name.equals("wcolor")) { columnEntry.setwColor(someValue); } if (tag_name.equals("parentid")) { columnEntryChilds.get(i).setParentId(someValue); } if (tag_name.equals("name")) { columnEntryChilds.get(i).setName(someValue); } if (tag_name.equals("id")) { columnEntryChilds.get(i).setId(someValue); } if (tag_name.equals("operationimage")) { columnEntryChilds.get(i).setOperationImage(someValue); } if (tag_name.equals("type")) { columnEntryChilds.get(i).setType(someValue); } if (tag_name.equals("path")) { columnEntryChilds.get(i).setPath(someValue); } if (tag_name.equals("issuetime")) { columnEntryChilds.get(i).setIssueTime(someValue); } if (tag_name.equals("description")) { columnEntryChilds.get(i).setDescription(someValue); } if (tag_name.equals("agiorate")) { if("0.0".equals(someValue)) isFree = true; } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void parseInitSelfResources(String result,ColumnEntry columnEntry) { try { List<ColumnEntry> columnEntryChilds = columnEntry.getSelectColumnEntryChilds(); String tag_name = ""; int i = -1; ByteArrayInputStream bis = new ByteArrayInputStream( result.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("phonefunction")) { ColumnEntry columnEntryChild = new ColumnEntry(); columnEntryChilds.add(columnEntryChild); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("parentid")) { columnEntryChilds.get(i).setParentId(someValue); } if (tag_name.equals("name")) { columnEntryChilds.get(i).setName(someValue); } if (tag_name.equals("resourceid")) { columnEntryChilds.get(i).setId(someValue); } if (tag_name.equals("operationimage")) { columnEntryChilds.get(i).setOperationImage(someValue); } if (tag_name.equals("type")) { columnEntryChilds.get(i).setType(someValue); } if (tag_name.equals("description")) { columnEntryChilds.get(i).setDescription(someValue); } if (tag_name.equals("issuetime")) { columnEntryChilds.get(i).setIssueTime(someValue); } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static List<Forum> parseForumInfo(String xml, String classId, String userId, String functionId) { List<Forum> dataList = new ArrayList<Forum>(); try { String tag_name = ""; int i = dataList.size() - 1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("bbsfollow")) { Forum forum = new Forum(); forum.setClassId(classId); forum.setUserid(userId); forum.setFunctionid(functionId); dataList.add(forum); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("content")) { dataList.get(i).setContent(someValue); } else if (tag_name.equals("name")) { dataList.get(i).setName(someValue); } else if (tag_name.equals("serial")) { dataList.get(i).setSerial(someValue); } else if (tag_name.equals("time")) { dataList.get(i).setTime(someValue); } else if (tag_name.equals("stringtime")) { dataList.get(i).setStrTime(someValue); } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return dataList; } /** * 个人中心 */ public static PersonCenterInf personCenter(String xml) throws Exception { PersonCenterInf personCenterInf = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: if (parser.getName().equals("user")) { personCenterInf = new PersonCenterInf(); } if (personCenterInf != null) { if (parser.getName().equals("name")) { personCenterInf.setName(parser.nextText()); } else if (parser.getName().equals("loginname")) { personCenterInf.setLgoinname(parser.nextText()); } else if (parser.getName().equals("sex")) { personCenterInf.setSex(parser.nextText()); } else if (parser.getName().equals("email")) { personCenterInf.setEmail(parser.nextText()); } else if (parser.getName().equals("phone")) { personCenterInf.setPhone(parser.nextText()); } else if (parser.getName().equals("unitname")) { personCenterInf.setUnitname(parser.nextText()); } else if (parser.getName().equals("integral")) { personCenterInf.setIntegral(parser.nextText()); } else if (parser.getName().equals("certype")) { personCenterInf.setCertype(parser.nextText()); } else if (parser.getName().equals("cardno")) { personCenterInf.setCardno(parser.nextText()); } } break; case XmlPullParser.END_TAG: break; } event = parser.next(); } return personCenterInf; } /** * @param xml * @param coursewares */ public static void parseCoursewares(String xml, List<Courseware> coursewares) { try { String tag_name = ""; int i = coursewares.size() - 1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("class")) { Courseware courseware = new Courseware(); coursewares.add(courseware); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("classid") || tag_name.equals("id")) { coursewares.get(i).setClassId(someValue); } if (tag_name.equals("name")) { coursewares.get(i).setName(someValue.length()>10?someValue.substring(0 ,9)+"...":someValue); coursewares.get(i).setFullName(someValue); } if (tag_name.equals("path")) { coursewares.get(i).setPath(someValue); } if (tag_name.equals("downpath")) { coursewares.get(i).setDownPath(someValue); } if (tag_name.equals("lookpath")) { coursewares.get(i).setLookPath(someValue); } if (tag_name.equals("teachername")) { coursewares.get(i).setTeacherName(someValue); } if (tag_name.equals("protime")) { coursewares.get(i).setProTime(someValue.length()>5?someValue.substring(0 ,someValue.indexOf(" ")):someValue); } if (tag_name.equals("classlength")) { try{ coursewares.get(i).setClassLength((Integer.parseInt(someValue)*60)+""); }catch(Exception e){ coursewares.get(i).setClassLength("0"); e.printStackTrace(); } } if (tag_name.equals("intro")) { coursewares.get(i).setIntro(someValue); } if (tag_name.equals("setnum")) { coursewares.get(i).setClassLevel(someValue); } if (tag_name.equals("isfree")) { if(isFree || "1".equals(someValue)) coursewares.get(i).setFree(true); } if (tag_name.equals("passkey")) { coursewares.get(i).setKey(someValue); } break; } } } catch (Exception e) { e.printStackTrace(); } } /** * @param xml * @param coursewares */ public static void parseErrorCoursewares(String xml, List<Courseware> coursewares) { try { String tag_name = ""; int i = coursewares.size() - 1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("class")) { Courseware courseware = new Courseware(); coursewares.add(courseware); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("classid") || tag_name.equals("id")) { coursewares.get(i).setClassId(someValue); } if (tag_name.equals("name")) { coursewares.get(i).setName(someValue.length()>10?someValue.substring(0 ,9)+"...":someValue); coursewares.get(i).setFullName(someValue); } if (tag_name.equals("path")) { coursewares.get(i).setPath(someValue); } if (tag_name.equals("lookpath")) { coursewares.get(i).setDownPath(someValue); } if (tag_name.equals("downpath")) { coursewares.get(i).setLookPath(someValue); } if (tag_name.equals("teachername")) { coursewares.get(i).setTeacherName(someValue); } if (tag_name.equals("protime")) { coursewares.get(i).setProTime(someValue.length()>5?someValue.substring(0 ,someValue.indexOf(" ")):someValue); } if (tag_name.equals("classlength")) { try{ coursewares.get(i).setClassLength((Integer.parseInt(someValue)*60)+""); }catch(Exception e){ coursewares.get(i).setClassLength("0"); e.printStackTrace(); } } if (tag_name.equals("intro")) { coursewares.get(i).setIntro(someValue); } if (tag_name.equals("setnum")) { coursewares.get(i).setClassLevel(someValue); } if (tag_name.equals("isfree")) { if(isFree || "1".equals(someValue)) coursewares.get(i).setFree(true); } if (tag_name.equals("passkey")) { coursewares.get(i).setKey(someValue); } break; } } } catch (Exception e) { e.printStackTrace(); } } /** * @param xml * @param coursewares */ public static void parseCoursewareTimes(String xml, List<Courseware> coursewares) { try { String tag_name = ""; int i = coursewares.size() - 1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("classtime")) { Courseware courseware = new Courseware(); coursewares.add(courseware); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("classid")) { coursewares.get(i).setClassId(someValue); } if (tag_name.equals("name")) { coursewares.get(i).setName(someValue.length()>10?someValue.substring(0 ,9)+"...":someValue); coursewares.get(i).setFullName(someValue); } if (tag_name.equals("path")) { coursewares.get(i).setPath(someValue); } if (tag_name.equals("downpath")) { coursewares.get(i).setDownPath(someValue); } if (tag_name.equals("lookpath")) { coursewares.get(i).setLookPath(someValue); } if (tag_name.equals("teachername")) { coursewares.get(i).setTeacherName(someValue); } if (tag_name.equals("protime")) { coursewares.get(i).setProTime(someValue.length()>5?someValue.substring(0 ,someValue.indexOf(" ")):someValue); } if (tag_name.equals("classlength")) { try{ coursewares.get(i).setClassLength((Integer.parseInt(someValue)*60)+""); }catch(Exception e){ coursewares.get(i).setClassLength("0"); e.printStackTrace(); } } if (tag_name.equals("intro")) { coursewares.get(i).setIntro(someValue); } if (tag_name.equals("setnum")) { coursewares.get(i).setClassLevel(someValue.equals("null")?"1":someValue); } if (tag_name.equals("isfree")) { coursewares.get(i).setFree(true); } if (tag_name.equals("passkey")) { coursewares.get(i).setKey(someValue); } if (tag_name.equals("time")) { coursewares.get(i).setStudyTime(someValue); } if (tag_name.equals("iscompleted")) { coursewares.get(i).setIscompleted(someValue); } break; } } } catch (Exception e) { e.printStackTrace(); } } /** * 阅读报告解析 * * @param xml * @return * @throws Exception */ public static List<Report> parseReport(String xml) throws Exception { List<Report> reports = null; Report report = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: reports = new ArrayList<Report>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("report") || parser.getName().equals("class")) { report = new Report(); } if(parser.getName().equals("RETURNCODE")){ return null; } if (report != null) { if (parser.getName().equals("price")) { report.setPrice(parser.nextText()); } else if (parser.getName().equals("classid") || parser.getName().equals("id")) { report.setId(parser.nextText()); } else if (parser.getName().equals("ischeck")) { report.setIsCheck(parser.nextText()); } else if (parser.getName().equals("name")) { report.setName(parser.nextText()); } else if (parser.getName().equals("teachername") || parser.getName().equals("author")) { report.setAuthor(parser.nextText()); } else if (parser.getName().equals("path")) { report.setPpath(parser.nextText()); } else if (parser.getName().equals("protime") || parser.getName().equals("creattime")) { String protime = parser.nextText(); report.setProtime(protime.length()>5? protime.substring(0,protime.indexOf(" ")):protime); } else if (parser.getName().equals("downpath")) { report.setDownpath(parser.nextText()); } else if (parser.getName().equals("intro")) { report.setIntro(parser.nextText()); } else if (parser.getName().equals("scroll")) { report.setMulu(parser.nextText()); } else if (parser.getName().equals("passkey")) { report.setKey(parser.nextText()); } else if (parser.getName().equals("isfree")) { if(isFree) report.setIsFree("1"); else report.setIsFree(parser.nextText()); } } break; case XmlPullParser.END_TAG: if (parser.getName().equals("report") || parser.getName().equals("class")) { reports.add(report); report = null; } break; } event = parser.next(); } return reports; } public static String parseCoursewareId(String xml) { String id = null; try { ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); XmlPullParser parser = Xml.newPullParser(); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_TAG: if (parser.getName().equals("id")) { id = parser.nextText(); } break; case XmlPullParser.END_TAG: break; } event = parser.next(); }// end while } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return id; } public static int updateUserInfoPassWord(String xml) { int id = 0; try { ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); XmlPullParser parser = Xml.newPullParser(); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_TAG: if (parser.getName().equals("returncode")) { id = Integer.parseInt(parser.nextText()); } break; case XmlPullParser.END_TAG: break; } event = parser.next(); }// end while } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return id; } public static int updatePassWord(String xml) { int id = 0; try { ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); XmlPullParser parser = Xml.newPullParser(); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_TAG: if (parser.getName().equals("returncode")) { id = Integer.parseInt(parser.nextText()); } break; case XmlPullParser.END_TAG: break; } event = parser.next(); }// end while } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return id; } public static List<AnnouncementNews> getAnnouncement(String xml) throws Exception { List<AnnouncementNews> announcementNews = null; AnnouncementNews n = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: announcementNews = new ArrayList<AnnouncementNews>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("new")) { n = new AnnouncementNews(); } if (n != null) { if (parser.getName().equals("id")) { n.setId(parser.nextText()); } else if (parser.getName().equals("title")) { n.setTitle(parser.nextText()); } else if (parser.getName().equals("subhead")) { n.setSubhead(parser.nextText()); } else if (parser.getName().equals("time")) { n.setTime(parser.nextText()); } } break; case XmlPullParser.END_TAG: if (parser.getName().equals("new")) { announcementNews.add(n); n = null; } break; } event = parser.next(); } return announcementNews; } public static void parseClassType(String xml, List<ClassType> classTypes) { try { String tag_name = ""; int i = classTypes.size() - 1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("classtype")) { ClassType classType = new ClassType(); classTypes.add(classType); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("id")) { classTypes.get(i).setClassId(someValue); } if (tag_name.equals("name")) { classTypes.get(i).setContent(someValue); } if (tag_name.equals("parentid")) { classTypes.get(i).setParentId(someValue); } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 政经资讯 资讯列表的解析 getNews * * @param xml * @return * @throws Exception */ public static void getNewsList(String xml, List<InfoNew> infoNews) { try { String tag_name = ""; int i = infoNews.size() - 1; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); if (tag_name.equals("new")) { InfoNew infoNew = new InfoNew(); infoNews.add(infoNew); i++; } break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("imagepath")) { infoNews.get(i).setImagepath(someValue); } if (tag_name.equals("id")) { infoNews.get(i).setId(someValue); } if (tag_name.equals("title")) { infoNews.get(i).setTitle(someValue); } if (tag_name.equals("subhead")) { infoNews.get(i).setSubhead(someValue); } if (tag_name.equals("time")) { infoNews.get(i).setTime(someValue.length()>5 ?someValue.substring(0,someValue.indexOf(" ")):someValue); } if (tag_name.equals("isfree")) { if(isFree) infoNews.get(i).setIsfree("1"); else infoNews.get(i).setIsfree(someValue); } if (tag_name.equals("functionid")) { infoNews.get(i).setFunctionId(someValue); } if (tag_name.equals("iscollect")) { infoNews.get(i).setIsCollect(someValue); } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 解析城市或省份集合 <string>广西,31125</string> <string>云南,31126</string> * <string>海南,31127</string> <string>新疆,31128</string> * <string>西藏,31129</string> <string>台湾,31130</string> * <string>北京,311101</string> <string>上海,311102</string> * <string>天津,311103</string> <string>重庆,311104</string> * <string>香港,311201</string> <string>澳门,311202</string> * * @return */ public static List<String[]> parsePCCodes(String xml) { List<String[]> provinces = new ArrayList<String[]>(); try { String tag_name = ""; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toUpperCase().trim(); break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("STRING")) { String[] province = someValue.split(","); provinces.add(province); } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return provinces; } /** * 解析城市天气 * * @return <string>直辖市 重庆</string> <string>巴南</string> <string>1601</string> * <string>2012/06/18 19:56:35</string> * <string>今日天气实况:气温:20℃;风向/风力:西南风 2级;湿度:90%</string> * <string>空气质量:中;紫外线强度:最弱</string> * <string>穿衣指数:天气较热,建议着短裙、短裤、短套装、T恤等夏季服装。年老体弱者宜着长袖衬衫和单裤。 * 感冒指数:各项气象条件适宜,无明显降温过程,发生感冒机率较低。 运动指数:阴天,天气较热,请减少运动时间并降低运动强度。 * 洗车指数:较不宜洗车,过去12小时有降雨,路面少量积水,如果执意擦洗汽车,要做好溅上泥水的心理准备。 * 晾晒指数:天气阴沉,不利于水分的迅速蒸发,不太适宜晾晒。若需要晾晒,请尽量选择通风的地点。 * 旅游指数:阴天,温度适宜,总体来说还是好天气哦,这样的天气很适宜旅游,您可以尽情地享受大自然的风光。 * 路况指数:阴天,路面比较干燥,路况较好。 * 舒适度指数:天气较热,空气湿度较大,会使您感到有点儿闷热,不过大部分人仍会有比较舒适的感觉。 * 空气污染指数:气象条件对空气污染物稀释、扩散和清除无明显影响,易感人群应适当减少室外活动时间。 * 紫外线指数:属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。</string> */ public static WeatherInfo parseWeatherInfo(String xml) { WeatherInfo wi = new WeatherInfo(); int index = 0; try { String tag_name = ""; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toUpperCase().trim(); break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("STRING")) { index++; switch (index) { case 1: wi.setProvince(someValue); break; case 2: wi.setCity(someValue); break; case 3: wi.setCityCode(someValue); break; case 4: wi.setTime(someValue); break; case 5: wi.setScene(someValue); break; case 6: wi.setAir(someValue); break; case 7: wi.setDes(someValue); break; } } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return wi; } /** * 解析报告分类列表 * * @param retCord */ public static List<ReportpaitElement> parseReportPart(String xml) throws Exception { List<ReportpaitElement> reportList = null; ReportpaitElement element = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: reportList = new ArrayList<ReportpaitElement>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("classtype")) { element = new ReportpaitElement(); } if(parser.getName().equals("RETURNCODE")){ return null; } if (element != null) { if (parser.getName().equals("id")) { element.setId(parser.nextText()); } else if (parser.getName().equals("name")) { element.setOutlineTitle(parser.nextText()); } else if (parser.getName().equals("parentid")) { element.setParent(parser.nextText()); } } break; case XmlPullParser.END_TAG: if (parser.getName().equals("classtype")) { reportList.add(element); element = null; } break; } event = parser.next(); } return reportList; } public static List<funId> queryBuyNews(String xml) throws Exception { List<funId> funids = null; funId funid = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: funids = new ArrayList<funId>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("funid")) { funid = new funId(); funid.setFunid(parser.nextText()); funids.add(funid); funid = null; } } event = parser.next(); } return funids; } public static List<funId> queryBuyReports(String xml) throws Exception { List<funId> funids = null; funId funid = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: funids = new ArrayList<funId>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("id")) { funid = new funId(); funid.setFunid(parser.nextText()); funids.add(funid); funid = null; } } event = parser.next(); } return funids; } /*解析报告属性*/ public static List<ReportColumn> parseReportColumn(String xml) throws Exception { List<ReportColumn> reportList = null; ReportColumn element = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: reportList = new ArrayList<ReportColumn>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("reportname")) { element = new ReportColumn(); } if (element != null) { if (parser.getName().equals("name")) { element.setName(parser.nextText()); } else if (parser.getName().equals("intro")) { element.setIntro(parser.nextText()); } else if (parser.getName().equals("author")) { element.setAuthro(parser.nextText()); }else if (parser.getName().equals("unit")) { element.setUnit(parser.nextText()); } else if (parser.getName().equals("list")) { element.setList(parser.nextText()); }else if (parser.getName().equals("price")) { element.setPrice(parser.nextText()); } } break; case XmlPullParser.END_TAG: if (parser.getName().equals("reportname")) { reportList.add(element); element = null; } break; } event = parser.next(); } return reportList; } public static String parseAddress(String xml) { String returnCode = "-1"; try { String tag_name = ""; ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); KXmlParser parser = new KXmlParser(); parser.setInput(bis, "UTF-8"); while (parser.next() > 1) { int eventType = parser.getEventType(); switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.END_DOCUMENT: break; case XmlPullParser.END_TAG: tag_name = ""; break; case XmlPullParser.START_TAG: tag_name = parser.getName().toLowerCase().trim(); break; case XmlPullParser.TEXT: String someValue = parser.getText().trim(); if (tag_name.equals("address")) { returnCode = someValue; } break; } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return returnCode; } public static Updata queryApkList(String xml) throws Exception { Updata u = null; XmlPullParser parser = Xml.newPullParser(); ByteArrayInputStream bis = new ByteArrayInputStream( xml.getBytes("UTF-8")); parser.setInput(bis, "UTF-8"); int event = parser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: if (parser.getName().equals("update")) { u = new Updata(); } if (u != null) { if (parser.getName().equals("yepengaphoneversion")) { u.setAphoneversion(Integer.parseInt(parser.nextText())); } else if (parser.getName().equals("yepengaphonename")) { u.setAphonename(parser.nextText()); } else if (parser.getName().equals("yepengaphoneurl")) { u.setAphoneurl(parser.nextText()); } } break; case XmlPullParser.END_TAG: if (parser.getName().equals("update")) { } break; } event = parser.next(); } return u; } }