android Pull解析xml

pull解析assets文件夹里的xml文件

#pull解析assets文件夹里的xml文件

assets文件夹的使用

   在main文件夹右击创建directory,命名为assets

pull解析xml

解析到的结果保存以sms的形式保存在集合中

//解析xml方法
 private void Jxml() {
        List<Sms> persons = null;
        Sms person = null;
        try {
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser parser = factory.newPullParser();
            //获取assets中的xml文件
            InputStream inputStream = getResources().getAssets().open("persons.xml");
            parser.setInput(inputStream, "utf-8");
            int type = parser.getEventType();
            while (type != XmlPullParser.END_DOCUMENT) {
                String name = parser.getName();//获取当前节点的名称
                switch (type) {
                    case XmlPullParser.START_DOCUMENT:
                        persons = new ArrayList<>();
                    case XmlPullParser.START_TAG://开始节点
                        if ("sms".equals(name)) {
                            person = new Sms();
                        } else if (person != null) {
                            if ("body".equals(name)) {
                                String text = parser.nextText();
                                person.setBody(text);
                            } else if ("date".equals(name)) {
                                String text = parser.nextText();
                                person.setDate(text);
                            }
                        }
                        break;

                    case XmlPullParser.END_TAG:
                        if ("sms".equals(name)) {
                            persons.add(person);
                            person = null;
                        }
                        break;

                }
                type = parser.next();
            }

            Log.e("da", persons.toString());
//            tvChara.setText(person.toString());

        } catch (IOException e) {
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        }
    }

自定义sms

 class Sms {

        private String body;
        private String date;
        private String type;
        private String address;


        public String getBody() {
            return body;
        }

        public void setBody(String body) {
            this.body = body;
        }

        public String getDate() {
            return date;
        }

        public void setDate(String date) {
            this.date = date;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }

        @Override
        public String toString() {
            return "Sms{" +
                    "body='" + body + '\'' +
                    ", date='" + date + '\'' +
                    ", type='" + type + '\'' +
                    ", address='" + address + '\'' +
                    '}';
        }
    }

xml文件

person.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <sms>
        <body>m</body>
        <date>y</date>
        <address>p</address>
        <type>q</type>
    </sms>
    <sms>
        <body>1条短信</body>
        <date>1465041254179</date>
        <address>111</address>
        <type>1</type>
    </sms>
    <sms>
        <body>2条短信</body>
        <date>1465041254179</date>
        <address>222</address>
        <type>1</type>
    </sms>
</persons>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值