標籤:
參考:http://blog.csdn.net/pi9nc/article/details/9320413
XML檔案的解析,代碼:
1 public void click(View v) { 2 InputStream is = getClassLoader().getResourceAsStream("weather.xml"); 3 //擷取到XMLPullParse介面的對象 4 XmlPullParser xpp = Xml.newPullParser(); 5 try { 6 //設定輸出資料流及編碼 7 xpp.setInput(is, "utf-8"); 8 //擷取到節點的類型,START_DOCUMENT=0,END_DOCUMENT=1,START_TAG=2,END_TAG=3,TEXT=4 9 int type = xpp.getEventType();10 CityBean city = null;11 //當前節點不是END_DOCUMENT的話,就一直迴圈遍曆XML檔案12 while (type!=XmlPullParser.END_DOCUMENT) {13 //使用switch判斷type類型14 switch (type) {15 //type為2的情況下,進入START_TAG16 case XmlPullParser.START_TAG:17 //擷取當前節點的名字是weather18 if ("weather".equals(xpp.getName())) {19 //city的集合20 cityList=new ArrayList<>();21 }else if ("city".equals(xpp.getName())) {22 city = new CityBean();23 }else if ("name".equals(xpp.getName())) {24 String name = xpp.nextText();25 city.setName(name);26 }else if ("temp".equals(xpp.getName())) {27 String temp = xpp.nextText();28 city.setTemp(temp);29 }else if ("pm".equals(xpp.getName())) {30 String pm = xpp.nextText();31 city.setPm(pm);32 }33 break;34 case XmlPullParser.END_TAG:35 if ("city".equals(xpp.getName())) {36 cityList.add(city);37 }38 break;39 default:40 break;41 }42 //把解析的指標移動到下一個節點43 type=xpp.next();44 }45 for (CityBean c1 : cityList) {46 System.out.println(c1.toString());47 }48 } catch (Exception e) {49 e.printStackTrace();50 } 51 }
XML檔案的建立,代碼:
1 File file = new File(Environment.getExternalStorageDirectory(),"info3.xml"); 2 XmlSerializer xml = Xml.newSerializer(); 3 try { 4 FileOutputStream fos = new FileOutputStream(file); 5 xml.setOutput(fos, "utf-8"); 6 xml.startDocument("utf-8", true); 7 xml.startTag(null, "message"); 8 for (SmsBean smsBean : smsList) { 9 xml.startTag(null, "sms");10 xml.startTag(null, "body");11 xml.text(smsBean.getBody());12 xml.endTag(null, "body");13 xml.startTag(null, "address");14 xml.text(smsBean.getAddress());15 xml.endTag(null, "address");16 xml.startTag(null, "date");17 xml.text(smsBean.getDate());18 xml.endTag(null, "date");19 xml.startTag(null, "type");20 xml.text(smsBean.getType());21 xml.endTag(null, "type");22 xml.endTag(null, "sms");23 }24 xml.endTag(null, "message");25 xml.endDocument();26 fos.close();27 } catch (Exception e) {28 29 e.printStackTrace();30 }
Android開發之XML的建立和解析