节点带有属性的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 PULL解析XML

  • 2017年07月27日 13:36
  • 21.28MB
  • 下载

Android-通过网络获取xml文件使用pull解析得到服务器中的信息(新闻客户端)

通过网络获取xml文件,使用pull解析该文件得到服务器中的信息; demo中使用了一个开源的图片加载包,故上传源码方便查看; 源码下载地址:http://download.csdn.net/deta...

pull解析XML

  • 2015年06月03日 20:56
  • 45KB
  • 下载

Pull解析xml

  • 2016年07月02日 18:12
  • 1.47MB
  • 下载

使用PULL解析XML文件

XmlPull和Sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为是基于流的处理,因此Xmlpull和 Sax都比较节约内存资源,不会象Dom那样要把所有节点...

pull解析xml

  • 2014年07月08日 09:50
  • 19.49MB
  • 下载

13pull解析xml天气信息

  • 2015年10月13日 11:50
  • 855KB
  • 下载

java中采用集合使用pull解析xml文件格式的方法

在java中解析xml语言有两种方法,这里我们采用pull解析方法 比如我们要解析Student.xml文件格式 编写xml格式文件 张三 男 18 李四 男 18 小红 女 18 ...

android pull解析xml源码

  • 2013年07月13日 16:33
  • 45KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:节点带有属性的xml pull解析
举报原因:
原因补充:

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