pull解析

安卓小菜鳥進階路發表於2017-07-21
        XmlPullParser parser = Xml.newPullParser();
         
            InputStream is = getAssets().open("Books.xml");
            parser.setInput(is, "utf-8");
            int type = parser.getEventType();//0 != 1  true   0 != 0 false
            List<Book> books = null;
            Book book = null;
            
           
            while(type != XmlPullParser.END_DOCUMENT){
                
                
                
                
                switch (type) {
                case XmlPullParser.START_TAG:
                {
                    
                    if("Books".equals(parser.getName())){
                   
                        books = new ArrayList<Book>();
                    }else if("Book".equals(parser.getName())){
                     
                        book = new Book();
                    }else if("name".equals(parser.getName())){
                       
                        String name = parser.nextText();
                        book.setName(name);
                    }else if("price".equals(parser.getName())){
                        String price = parser.nextText();
                        book.setPrice(price);
                    }else if("author".equals(parser.getName())){
                        String author = parser.nextText();
                        book.setAuthor(author);
                    }
                    
                }
                    break;

                case XmlPullParser.END_TAG:
                    if("Book".equals(parser.getName())){
                      
                        books.add(book);
                    }
                    
                    break;
                }
                
                         
       
                type = parser.next();
                
            }
            
            
            return books;
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return null;
       

相關文章