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

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

Pull解析器解析XML文件-創(chuàng)新互聯(lián)

Android內(nèi)部采用Pull解析器對XML進(jìn)行解析。

成都創(chuàng)新互聯(lián)公司是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、做網(wǎng)站、成都做網(wǎng)站、網(wǎng)站備案、服務(wù)器租用、域名注冊、軟件開發(fā)、微信平臺小程序開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營推廣經(jīng)驗(yàn)的科技公司,有著多年的網(wǎng)站建站經(jīng)驗(yàn),致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站歡迎聯(lián)系:13518219792

Pull解析器解析原理:

  1. 讀取XML數(shù)據(jù)到字符數(shù)組中;

  2. 開始解析——挨個字符讀取XML文件,判斷是否符合XMl語法,如符合,則會觸發(fā)對應(yīng)的事件。

下面通過一個例子來說明。

  1. 比如要解析如下XML文件

    
    
        
            gaohao
            25
        
        
            gaofeng
            31
        
    
  2. 在domain層新建Person類,存放從XML解析出來的數(shù)據(jù)

  3. public class Person {
        private Integer id;
        private String name;
        private Integer age;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
        }
    }

  4. 在業(yè)務(wù)層新建PersonService類,解析XML文件

    public class PersonService {
        public static List getPersons(InputStream xml) throws Exception{
            List persons = null;
            Person person = null;
            //使用Pull解析XML文件
            //XmlPullParser pullParser = XmlPullParserFactory.newInstance().newPullParser();//得到Pull解析器
            XmlPullParser pullParser =Xml.newPullParser();//也可以用該方法創(chuàng)建解析器
            pullParser.setInput(xml, "UTF-8");//設(shè)置Pull解析器要解析的數(shù)據(jù)
            //產(chǎn)生事件
            int event = pullParser.getEventType();
            //對事件進(jìn)行判斷
           while (event != XmlPullParser.END_DOCUMENT) {
                switch (event) {
                case XmlPullParser.START_DOCUMENT://文檔開始
                    persons = new ArrayList();//存放解析數(shù)據(jù)數(shù)組的初始化
                    break;
                                                                                       
                case XmlPullParser.START_TAG:
                    if("person".equals(pullParser.getName())){
                        int id = new Integer(pullParser.getAttributeValue(0));
                        person = new Person();
                        person.setId(id);
                    }
                    if("name".equals(pullParser.getName())){
                        String name = pullParser.nextText();//得到后面的文本
                        person.setName(name);
                    }
                    if("age".equals(pullParser.getName())){
                        int age = new Integer(pullParser.nextText());//得到后面的文本
                        person.setAge(age);
                    }
                    break;
                case XmlPullParser.END_TAG:
                    if ("person".equals(pullParser.getName())) {
                        persons.add(person);
                        person = null;
                    }
                    break;
                }
             //解析完第一個字符,會停止解析,要讓其繼續(xù),需要調(diào)用如下方法 
                event = pullParser.next();//進(jìn)入到后面的節(jié)點(diǎn),觸發(fā)case XmlPullParser.START_TAG事件,利用循環(huán)解析
            } 
            return persons;
        }
    }

    通過以上步驟即可將XML文件中的數(shù)據(jù)解析出來,通過單元測試顯示解析出來的數(shù)據(jù)

  5. 在AndroidManifest.xml文件中引入單元測試環(huán)境

     
                             
    

  6. 新建一個單元測試方法

public class PersonServiceTest extends AndroidTestCase {
    private static final String TAG = "PersonServiceTest";
    public void testPersons() throws Exception{
        InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml");
        List persons= PersonService.getPersons(xml);
        for (Person person : persons) {
            Log.i(TAG, person.toString());
        }
    }
}

執(zhí)行該測試方法就會在LogCat控制臺打印如下信息

03-28 06:13:45.375: INFO/PersonServiceTest(1247): Person [id=10, name=gaohao, age=25]
03-28 06:13:45.375: INFO/PersonServiceTest(1247): Person [id=11, name=gaofeng, age=31]

通過以上方法即可實(shí)現(xiàn)對XML文件中數(shù)據(jù)的解析。

附件:http://down.51cto.com/data/2364225

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享文章:Pull解析器解析XML文件-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/dghjcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部