XML解析

XML解析

XMLpull解析

java自帶的Dom解析和SAX解析,在Android平臺下效率並不是很高,所以Android自帶的XMLpull解析,優點是邊讀取,邊解析。獲取的事件是int型,這點區別於SAX的獲取的是方法。所以pull解析可以更方便的使用Switch進行解析。

Pull解析用到的類

  • XmlPullParser xpp = Xml.newPullParser();Xml工具類裏封裝了XmlPullParserFactory類,更方便的使用。

主要代碼

 XmlPullParser xmlPullParser = Xml.newPullParser();
        InputStream is = this.getAssets().open("beauties.xml");
        xmlPullParser.setInput(is, "UTF-8");
        int eventType = xmlPullParser.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            switch (eventType) {
                // 判斷當前事件是否爲文檔開始事件
                case XmlPullParser.START_DOCUMENT:
                    ...
                    break;
                // 判斷當前事件是否爲標籤元素開始事件
                case XmlPullParser.START_TAG:
                    if (xmlPullParser.getName().equals("beauty")) { 
                        beauty = new Beauty();                     
                    } else if (xmlPullParser.getName().equals("name")) {
                        xmlPullParser.next();                          
                        beauty.setName(xmlPullParser.getText());
                    } else if (xmlPullParser.getName().equals("age")) { 
                        xmlPullParser.next();
                        beauty.setAge(xmlPullParser.getText());
                    }
                    break;

                // 判斷當前事件是否爲標籤元素結束事件
                case XmlPullParser.END_TAG:
                    if (xmlPullParser.getName().equals("beauty")) {
                        mList.add(beauty);
                        beauty = null;
                    }
                    break;
            }
            // 進入下一個元素並觸發相應事件
            eventType = xmlPullParser.next();
        }
發佈了36 篇原創文章 · 獲贊 2 · 訪問量 9609
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章