为了账号安全,请及时绑定邮箱和手机立即绑定

xml的pull解析

标签:
Android

1.准备解析的文件

<?xml version="1.0" encoding="UTF-8"?><weapons>
    <weapon material="玉" type="剑">
        <name>问天剑</name>
        <atk>2000</atk>
        <user>语熙华</user>
    </weapon>
    <weapon material="铁" type="刀">
        <name>皇刀</name>
        <atk>3000</atk>
        <user>九方玄玉</user>
    </weapon></weapons>

2.在项目的main目录下新建assets目录用于存放资源文件
3.新建一个bean对象承载xml的信息

package top.toly.parse.bean;/**
 * 作者:张风捷特烈
 * 时间:2018/5/13:11:38
 * 邮箱:1981462002@qq.com
 * 说明:武器类
 */public class Weapon {    private String name;    private int atk;    private String material;    private String user;    private String type;    public String getName() {        return name;
    }    public void setName(String name) {        this.name = name;
    }    public int getAtk() {        return atk;
    }    public void setAtk(int atk) {        this.atk = atk;
    }    public String getUser() {        return user;
    }    public void setUser(String user) {        this.user = user;
    }    public String getType() {        return type;
    }    public void setType(String type) {        this.type = type;
    }    public String getMaterial() {        return material;
    }    public void setMaterial(String material) {        this.material = material;
    }    @Override
    public String toString() {        return "Weapon{" +                "name='" + name + '\'' +                ", atk=" + atk +                ", material='" + material + '\'' +                ", user='" + user + '\'' +                ", type='" + type + '\'' +                '}';
    }
}

4.解析方法

    private ArrayList<Weapon> parseXmlWithPull() {        try {//            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();//            XmlPullParser pullParser = factory.newPullParser();

            XmlPullParser pullParser = Xml.newPullParser();
            InputStream is = getAssets().open("weapon.xml");
            pullParser.setInput(is,     "utf-8");            int event = pullParser.getEventType();//触发第一个事件

            while (event != XmlPullParser.END_DOCUMENT) {//没有终止
                switch (event) {                    case XmlPullParser.START_DOCUMENT://文档开始
                        mWeapons = new ArrayList<>();                        break;                    case XmlPullParser.START_TAG:                        switch (pullParser.getName()) {//拿到标签名称
                            case "weapon":
                                mWeapon = new Weapon();
                                String type = pullParser.getAttributeValue(0);
                                String material = pullParser.getAttributeValue(1);
                                mWeapon.setType(type);
                                mWeapon.setMaterial(material);                                break;                            case "name":
                                String name = pullParser.nextText();
                                mWeapon.setName(name);                                break;                            case "atk":
                                Short atk = new Short(pullParser.nextText());
                                mWeapon.setAtk(atk);                                break;                            case "user":
                                String user = pullParser.nextText();
                                mWeapon.setUser(user);                                break;
                        }                        break;                    case XmlPullParser.END_TAG:                        if ("weapon".equals(pullParser.getName())) {
                            mWeapons.add(mWeapon);
                        }                        break;
                }
                event = pullParser.next();//解析下一元素,更新event
            }
        } catch (Exception e) {
            e.printStackTrace();
        }        return mWeapons;
    }

5.调用方法,打印结果:

  ArrayList<Weapon> weapons = parseXmlWithPull();        for (Weapon w :
                weapons) {
            Log.e(TAG, "onCreate: " + w.toString());
        }

视频播放地址:
Xml的Pull解析(上):
http://v.youku.com/v_show/id_XMzYwNDI5Nzk0NA==.html
Xml的Pull解析(下-debug分析):
http://v.youku.com/v_show/id_XMzYwNDQzOTk2OA==.html

原文链接:http://www.apkbus.com/blog-953005-77744.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消