Andriod 使用XmlPull解析XML文件

来源:互联网 发布:宏观经济数据网 编辑:程序博客网 时间:2024/05/21 07:58

1、基本原理:
常用的有:
XmlPullParser.END_DOCUMENT
XmlPullParser.START_DOCUMENT
XmlPullParser.START_TAG
XmlPullParser.END_TAG
XmlPullParser.TEXT
分别代表着XML文档的结束,开始,标签的开始,标签的结束,内容

private void parseXMLWithPull(InputStream in) throws IOException {//解析xml数据        try {            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();            XmlPullParser xmlPullParser = factory.newPullParser();            xmlPullParser.setInput(in,"utf-8");            int eventType = xmlPullParser.getEventType();            String id = "";            String name = "";            String version = "";            while (eventType != XmlPullParser.END_DOCUMENT){                String nodeName = xmlPullParser.getName();                switch (eventType){                    //开始解析某个结点                    case XmlPullParser.START_TAG: {                        if ("id".equals(nodeName)) {                            id = xmlPullParser.nextText();                        } else if ("name".equals(nodeName)) {                            name = xmlPullParser.nextText();                        } else if ("version".equals(nodeName)) {                            version = xmlPullParser.nextText();                        }                        break;                    }                    //完成解析某个结点                    case XmlPullParser.END_TAG:{                        if("app".equals(nodeName)){                            Log.i("MainActivity","id is"+id);                            Log.i("MainActivity","name is"+name);                            Log.i("MainActivity","version is"+version);                        }                        break;                    }                    default:                        break;                }                eventType = xmlPullParser.next();            }        } catch (XmlPullParserException e) {            e.printStackTrace();        }    }

2、解析过程
1.首先获得XmlPullPraserFactory对象,之后借助这个对象获取到XmlPullPraser对象。
2.调用XmlPullPraser的setInput方法将获取到的xml文件流放入对象中,并指定相应编码格式。
3.通过XmlPullPraser的getEventType方法得到当前解析事件,开始while解析,如果当前事件不是XmlPullParser.END_DOCUMENT文档的结束,则继续解析。
4.逐个解析某个结点,从结点头到结点尾,之后继续循环。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 工商银行u盾丢了怎么办 银行不让开u盾怎么办 手机u盾识别不了怎么办 绿森商城不退款怎么办 电信手机号码过户积分清零怎么办 被电话诈骗骗了怎么办 诈骗电话骗了钱怎么办 被网友骗了一千块钱怎么办 被网友骗了1000块怎么办 微信红包被骗100怎么办 3m投资钱要不回来怎么办 手机照片超过3m怎么办 小说大于3m看不了怎么办 携程订单删除了怎么办 绿叶会员密码忘了怎么办 账号对名错了怎么办 lv双肩包肩带短了怎么办 微信充q币被骗了怎么办 qq隐私密码忘了怎么办 qq锁屏密码忘了怎么办 qq手势密码忘记了怎么办 qq红包的密码忘了怎么办 qq密码被改了怎么办啊 手机qq密码忘了怎么办 腾讯安全中心冻结解冻进不去怎么办 qq钱包充值限额怎么办 qq没绑卡支付密码忘了怎么办 手机qq停止运行该怎么办 手机不支持qq软件运行怎么办 王者传奇冲元宝不到账怎么办 支付宝充值地下城点卷冲错了怎么办 dnf点券冲错了怎么办 百家号改了手机绑定找不到了怎么办 银行卡换了网银怎么办 qq没有银行卡转不出钱怎么办 qq钱包限制一万怎么办 qq余额超过20万怎么办 扣扣忘记了密码怎么办 qq钱包发不出来怎么办 qq支付密码忘了怎么办? 扣扣上转账错了怎么办