真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

androidpull怎么解析xml

這篇文章主要介紹了 android pull怎么解析xml,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的茂南網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

pull解析xml文件,和sax和dom一樣 都可以脫離android單獨(dú)使用,pull和sax的原理一樣,不一樣的地方是pull讀取xml文件后調(diào)用方法返回的是數(shù)字,
  讀取到xml的聲明返回數(shù)字0 START_DOCUMENT;
  讀取到xml的結(jié)束返回數(shù)字1 END_DOCUMENT ;
  讀取到xml的開始標(biāo)簽返回數(shù)字2 START_TAG
  讀取到xml的結(jié)束標(biāo)簽返回數(shù)字3 END_TAG
  讀取到xml的文本返回數(shù)字4 TEXT

pull是開源的項目 源碼下載地址http://www.xmlpull.org/

被解析的xml文檔和android dom 解析xml方式 中的xml文檔一樣,命名為pullTest.xml.

private String pullParseXml(InputStream inputStream) {  
        String result = "";  
        //解析全部的xml  
        boolean isParse = true;  
        try {  
            // 創(chuàng)建一個xmlPullParser的工廠  
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();  
            // 獲取一個解析實例  
            XmlPullParser parse = factory.newPullParser();  
            // 設(shè)置輸入流的編碼格式  
            parse.setInput(inputStream, "UTF-8");  
            // 當(dāng)前事件的類型  
            int eventType = parse.getEventType();  
            while (XmlPullParser.END_DOCUMENT != eventType) {  
                // 當(dāng)前節(jié)點的名稱  
                String nodeName = parse.getName();  
                switch (eventType) {  
                case XmlPullParser.START_TAG:  
                    if ("group".equals(nodeName)) {  
                        // 解析節(jié)點中的屬性值,getAttributeCount()獲取屬性的個數(shù)  
                        for (int i = 0; i < parse.getAttributeCount(); i++) {  
                            // 屬性名稱  
                            String groupName = parse.getAttributeName(i);  
                            // 屬性名稱對應(yīng)的值  
                            String nameValue = parse.getAttributeValue(i);  
                            result = result + groupName + " = " + nameValue;  
                        }  
                        result += "\n";  
                    } else if ("person".equals(nodeName)) {  
                        String personName = parse.getAttributeValue(0);  
                        String age = parse.getAttributeValue(1);  
                        result = result + "personName = " + personName  
                                + "age =" + age + "\n";  
                    } else if ("chinese".equals(nodeName)) {  
                        //節(jié)點對應(yīng)的文本  
                        String chinese = parse.nextText();  
                        Pattern p = Pattern.compile("\\s*|\t|\r|\n");  
                        Matcher m = p.matcher(chinese);  
                        chinese = m.replaceAll("");  
  
                        result = result + "chinese = " + chinese;  
                    } else if ("english".equals(nodeName)) {  
                        String english = parse.nextText();  
  
                        Pattern p = Pattern.compile("\\s*|\t|\r|\n");  
                        Matcher m = p.matcher(english);  
                        english = m.replaceAll("");  
  
                        result = result + "english = " + english + "\n";  
                    }  
                    break;  
                case XmlPullParser.END_TAG:  
                    //在解析到一個group節(jié)點完成時,退出解析xml文件  
//                  if("group".equals(nodeName)){  
//                      eventType = XmlPullParser.END_DOCUMENT;   
//                      isParse = false;  
//                  }  
                    break;  
                default:  
                    break;  
                }  
                //整個xml文件全部解析  
                if(isParse){  
                    eventType = parse.next();  
                }  
            }  
        } catch (XmlPullParserException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
  
        return result;  
    }

pull和sax不同最主要的體現(xiàn)在pull可以由客戶隨時終止解析xml.sax解析,只能從文檔頭一直讀到尾,中間不能停止也不能對文件進(jìn)行修改。直到解析完了整個文檔才會返回。

//在解析到一個group節(jié)點完成時,退出解析xml文件  
//                  if("group".equals(nodeName)){  
//                      eventType = XmlPullParser.END_DOCUMENT;   
//                      isParse = false;  
//                  }

只要滿足退出解析的條件,只需要設(shè)置如下代碼即可。

eventType = XmlPullParser.END_DOCUMENT;

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“ android pull怎么解析xml”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


網(wǎng)站欄目:androidpull怎么解析xml
文章網(wǎng)址:http://weahome.cn/article/gcjjei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部