Android 使用XmlPullParser解析xml
生活随笔
收集整理的這篇文章主要介紹了
Android 使用XmlPullParser解析xml
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這里我們假設要解析的xml文件名為:test.xml,我們將其放在assets路徑中。
xml文件內容為:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <books><book id="1"><name>Java編程思想</name><price>29.9</price><date>2013年11月11日</date></book><book id="2"><name>PHP和MySQL WEB開發</name><price>49.9</price><date>2009年10月01日</date></book><book id="3"><name>鳥哥的Linux私房菜</name><price>60.0</price><date>2010年05月30日</date></book> </books>?
下面的代碼演示了如何去解析一個xml文件(注意assets文件流的獲取方式)
private void pullXml() {InputStream inputStream = null;List<Book> bookList = null;Book book = null;try {//初始化parserAssetManager assetManager=this.getAssets();inputStream = assetManager.open("test.xml");XmlPullParser parser = Xml.newPullParser();parser.setInput(inputStream, "utf-8");//開始讀取數據int type = parser.getEventType();while (type != XmlPullParser.END_DOCUMENT) {//1switch (type) {case (XmlPullParser.START_TAG)://0if ("books".equals(parser.getName())) {bookList = new ArrayList<Book>();} else if ("book".equals(parser.getName())) {book = new Book();//獲取book的idString id = parser.getAttributeValue(0);book.setId(Integer.parseInt(id));} else if ("name".equals(parser.getName())) {book.setName(parser.nextText());} else if ("price".equals(parser.getName())) {book.setPrice(Double.parseDouble(parser.nextText()));} else if ("date".equals(parser.getName())) {book.setDate(parser.nextText());}break;case (XmlPullParser.END_TAG)://3if ("book".equals(parser.getName())) {bookList.add(book);book = null;}break;}type = parser.next();}} catch (Exception e) {Toast.makeText(this, "解析出錯", Toast.LENGTH_LONG).show();e.printStackTrace();}Toast.makeText(this, "長度"+bookList.size(), Toast.LENGTH_LONG).show();for (Book book1 : bookList) {Log.d("book", book1.toString());}}?
轉載于:https://www.cnblogs.com/wuyou/p/3418697.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Android 使用XmlPullParser解析xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转Javascript 给JS写测试
- 下一篇: android sina oauth2.