pull解析

public class MainActivity extends Activity {




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    
    public void btnPullResolver(View v){
        
        try {
            List<Book> books = pullResolverXml();
            System.out.println(books);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    
    
    
    
    private List<Book> pullResolverXml() throws Exception{
        //step1:創建pull解析器對象
        XmlPullParser parser = Xml.newPullParser();
        //參數1:你要關聯度的要給文件流
        //參數2:以什麼編碼格式讀入到計算內存當中
        InputStream is = getAssets().open("Books.xml");
        parser.setInput(is, "utf-8");//GBK  UTF-8
        
        int type = parser.getEventType();//讀取開始文檔   0
        //創建集合
        List<Book> books = null;
        //創建一個javabean
        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())){
                    //得到name標籤的文本值
                    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:
                //當讀取到Book結束標籤的時候,添加到集合
                if("Book".equals(parser.getName())){
                    books.add(book);
                }
                break;
            }
            
            //千萬不要忘記了
            type = parser.next();//往下移動一行  1
        }
        
        return books;
        
    }
    
    
    
    

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章