首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

android解析xml资料的方式XmlPullParser

2012-09-27 
android解析xml文件的方式XmlPullParserhttp://www.cnblogs.com/zhangdongzi/archive/2011/04/15/2016828.

android解析xml文件的方式XmlPullParser
http://www.cnblogs.com/zhangdongzi/archive/2011/04/15/2016828.html

感覺還是XmlPullParser的方式簡單好用.


public List<River> parse(String xmlPath){        List<River> rivers=new ArrayList<River>();        River river=null;        InputStream inputStream=null;            //获得XmlPullParser解析器        XmlPullParser xmlParser = Xml.newPullParser();           try {            //得到文件流,并设置编码方式            inputStream=this.context.getResources().getAssets().open(xmlPath);            xmlParser.setInput(inputStream, "utf-8");            //获得解析到的事件类别,这里有开始文档,结束文档,开始标签,结束标签,文本等等事件。            int evtType=xmlParser.getEventType();         //一直循环,直到文档结束             while(evtType!=XmlPullParser.END_DOCUMENT){             switch(evtType){             case XmlPullParser.START_TAG:                String tag = xmlParser.getName();                 //如果是river标签开始,则说明需要实例化对象了                if (tag.equalsIgnoreCase(RIVER)) {                    river = new River();                   //取出river标签中的一些属性值                  river.setName(xmlParser.getAttributeValue(null, NAME));                  river.setLength(Integer.parseInt(xmlParser.getAttributeValue(null, LENGTH)));                }else if(river!=null){                    //如果遇到introduction标签,则读取它内容                    if(tag.equalsIgnoreCase(INTRODUCTION)){                    river.setIntroduction(xmlParser.nextText());                    }else if(tag.equalsIgnoreCase(IMAGEURL)){                        river.setImageurl(xmlParser.nextText());                    }                }                break;                           case XmlPullParser.END_TAG:             //如果遇到river标签结束,则把river对象添加进集合中               if (xmlParser.getName().equalsIgnoreCase(RIVER) && river != null) {                    rivers.add(river);                    river = null;                }                break;                 default:break;            }            //如果xml没有结束,则导航到下一个river节点            evtType=xmlParser.next();         }        } catch (XmlPullParserException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }catch (IOException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        }         return rivers;     }

热点排行