加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

扣丁学堂——XML解析

发布时间:2020-12-16 08:47:14 所属栏目:百科 来源:网络整理
导读:一丶代码见本文 二丶课程讲解 public class XMLparse extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_xmlparse); } /*** * 使用 pull

一丶代码见本文

二丶课程讲解




public class XMLparse extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xmlparse);
    }


    /***
     * 使用 pull 解析 xml文件
     *
     * @param view
     */
    public void xmlPullClic(View view) {

        ArrayList<Person> plist = parse();//解析xml
        for (int i = 0; i < plist.size(); i++) {
            System.out.print(plist.get(i));
        }
    }

    private ArrayList<Person> parse() {

        //封装xmL节点信息
        ArrayList<Person> list = new ArrayList<Person>();

        //封装对象
        Person p = null;

        //创建xml 解析器
        XmlPullParser pull = Xml.newPullParser();

        // StringReader st = new StringReader(xml);

        InputStream in = getResources().openRawResource(R.raw.info);

        try {
            pull.setInput(in,"utf-8");//xml文件流

            int eventType = pull.getEventType();//获取当前的事件类型
            while (eventType != XmlPullParser.END_DOCUMENT) {
                switch (eventType) {
                    case XmlPullParser.START_TAG:
                        //开时位置时 :读取内容
                        String tag = pull.getName();//标记名称

                        if ("person".equals(tag)) {
                            p = new Person();
                            p.setId(Integer.parseInt(pull.getAttributeValue(null,"id"))); //获取标记属性 id
                        } else if ("name".equals(tag)) {
                            p.setName(pull.nextText());//因为文本在标记里面,所以要用 nextText()
                        } else if ("age".equals(tag)) {
                            p.setAge(Integer.parseInt(pull.nextText()));
                        } else if ("sex".equals(tag)) {
                            p.setSex(pull.nextText());
                        } else if ("tel".equals(tag)) {
                            p.setTel(pull.nextText());
                        } else if ("address".equals(tag)) {
                            p.setAddress(pull.nextText());
                        }
                        break;
                    case XmlPullParser.END_TAG:
                        if ("person".equals(pull.getName())) {
                            list.add(p);
                        }
                        break;
                }

                eventType = pull.next();//下一个事件类型
            }

        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return list; //xml解析后返回的结果
    }
}
这里只是一个理解,做了解,后期加强

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读