节点带有属性的xml pull解析

原创 2016年06月01日 21:53:30
<?xml version="1.0" encoding="UTF-8"?>  
<contacts>  
    <user id="1" uname="张三">  
        <phone>010895430987</phone>
        <mobil>1356789034</mobil>  
        <addr>北京市海淀区上地软件园南路57号</addr>
        <email>zhangsan@163.com</email>
        <work>群众演员</work>
    </user>  
    <user id="2" uname="马苏">  
        <phone>010895430966</phone>
        <mobil>139012345678</mobil>  
        <addr>北京市海淀区上地五街</addr>
        <email>masu@263.com</email>
        <work>二级演员</work>
    </user>
    <user id="3" uname="孙俪">  
        <phone>01087889988</phone>
        <mobil>13903456666</mobil>  
        <addr>北京市海淀区上地软件园南路57号</addr>
        <email>sunli@sina.com</email>
        <work>一级演员</work>
    </user>

</contacts>


private void parserPullXml() {
        boolean flag=true;
        
        XmlPullParser parser = Xml.newPullParser();
        try {
            //设置要解析文件的路径
            parser.setInput(getAssets().open("contacts.xml"), "utf-8");
            
            int event = parser.getEventType();//五种事件类型
            
            while(flag){
                    switch (event) {
                    case XmlPullParser.START_DOCUMENT:
                        //开始文档的解析
                        userlist = new ArrayList<>();
                        break;
                        
                    case XmlPullParser.END_DOCUMENT:
                        //结束文档解析
                        flag=false;//让循环结束
                        
                        break;
                        
                    case XmlPullParser.START_TAG:
                        name = parser.getName();
                        if(name.equals("user")){
                            u = new User();
                            u.setId(parser.getAttributeValue(null, "id"));
                            u.setUname(parser.getAttributeValue(null, "uname"));
                        }
                        
                        
                        
                        break;
                    case XmlPullParser.END_TAG:
                        //结束节点解析
                        name=parser.getName();
                        if(name.equals("user")){
                            userlist.add(u);
                        }
                        //清空name  
                        name="";
                        
                        break;
                    case XmlPullParser.TEXT:
                        
                        //文档解析
                        
                        if(name.equals("phone")){
                            u.setPhone(parser.getText());
                        }
                        if(name.equals("mobil")){
                            u.setMobil(parser.getText());
                        }
                        if(name.equals("addr")){
                            u.setAddr(parser.getText());
                        }
                        if(name.equals("email")){
                            u.setEmail(parser.getText());
                        }
                        if(name.equals("work")){
                            u.setWork(parser.getText());
                        }
                        
                        break;
                    }
                    
                    //让其解析下一行  若忘记写则不会接着解析
                    event=parser.next();
            }    
            
            
            
            
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }






android xml使用pull解析

xml的三种解析方式,DOM,SAX,和Pull
  • u013072976
  • u013072976
  • 2014年11月11日 17:43
  • 691

如何读取xml节点中的属性

using System; using System.Collections; using System.ComponentModel; using System.Data; using System...
  • hudelan
  • hudelan
  • 2010年06月15日 11:20
  • 10171

Android之PULL解析XML

今天我们一起通过一个小例子来学习一下使用PULL解析器解析XML文件。 (1)首先我们放一个文件名为beauties.xml的XML文件到assets目录下,文件内容如下: ...
  • bear_huangzhen
  • bear_huangzhen
  • 2014年04月29日 10:22
  • 25622

【Android】PULL解析XML文件

XML解析三种方式 DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据; 简单直观,但需要将文档读取到内存,并不太适合移动设备; ...
  • oYunTaoLianWu
  • oYunTaoLianWu
  • 2013年10月27日 02:08
  • 13781

反序列化带属性和值的xml节点集合

解析XML如下,需要取得Location节点的值和属性 http://pavo.elongstatic.com...
  • confused_kitten
  • confused_kitten
  • 2017年02月09日 09:58
  • 1387

XML使用SAX解析与PULL解析的区别

XML使用SAX解析与PULL解析的区别在最近的应用中,经常会用到对XML的解析,但是一直有一个疑问就是SAX解析与PULL解析的区别到底是什么。搜索了相关的问题,整理如下,以便大家查询。我们知道,S...
  • zhliro
  • zhliro
  • 2015年07月10日 15:18
  • 1986

使用XmlResourceParser轻松获取简单xml节点属性

一.概述:作为一种可扩展标记语言, XML以其较强的互操作性,可扩展性和规范统一性等优点,得到广泛的应用,也是各种应用程序之间进行数据传输的最常用的工具。         二.XML文件特性:    ...
  • Mytall
  • Mytall
  • 2016年11月19日 23:40
  • 1513

XML解析(三),PULL解析XML

昨天写了【XML解析(一)】SAX解析XML 和【XML解析(二)】DOM解析XML两篇文章,有兴趣的朋友可以去看一下,今天我们来学习一下PULL解析XML,刚好可以跟SAX和DOC解析XML的两种方...
  • ydxlt
  • ydxlt
  • 2015年12月06日 08:52
  • 9096

Android使用Pull方式解析XML

简单介绍:在Android应用开发中Pull方式解析XML是最被推荐的一种,Android系统内置了Pull解析器用来解析XML文件,它是采用事件驱动来完成XML解析的,只需要处理开始和结束事件,通常...
  • yang_183
  • yang_183
  • 2016年03月20日 16:38
  • 540

Android解析自定义xml文件--Pull解析xml文件,测试demo(方案三)

Android解析自定义xml文件--Pull解析xml文件,测试demo(方案三)
  • hailushijie
  • hailushijie
  • 2013年07月16日 21:08
  • 2359
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:节点带有属性的xml pull解析
举报原因:
原因补充:

(最多只允许输入30个字)