Android開發之XML的建立和解析

來源:互聯網
上載者:User

標籤:

參考: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的建立和解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.