Android 学习之pull解析Xml

一、 PUll解析Xml

public static List<Person> xmlParser(InputStream xml) throws Exception
    {
        List<Person> persons=null;
        Person p=null;
        XmlPullParser parser=Xml.newPullParser();
        parser.setInput(xml, "UTF-8");
        int event=parser.getEventType();
        while(event!=XmlPullParser.END_DOCUMENT)
        {
            switch (event) {
            case XmlPullParser.START_DOCUMENT:
                persons=new ArrayList<Person>();
                break;
            case XmlPullParser.START_TAG:
                if (parser.getName().equals("person"))
                {
                    p=new Person();
                    p.setId(Integer.parseInt(parser.getAttributeValue(0)));
                }
                if (parser.getName().equals("name"))
                {
                    p.setName(parser.nextText());
                }
                if(parser.getName().equals("age"))
                {
                    p.setAge(Integer.parseInt(parser.nextText()));
                }
                break;
                case XmlPullParser.END_TAG:
                if (parser.getName().equals("person"))
                {
                    persons.add(p);
                    p=null;
                }
                break;
            }
            event=parser.next();
        }
        return persons;
    }

二、以Xml格式保存信息

public static void saveAsXml(List<Person> persons,OutputStream os)throws Exception
    {
        XmlSerializer xmlSerial= Xml.newSerializer();
        xmlSerial.setOutput(os, "UTF-8");
        xmlSerial.startDocument("UTF-8", true);
        xmlSerial.startTag(null, "persons");
        for(Person person : persons)
        {
            xmlSerial.startTag(null, "person");
            xmlSerial.attribute(null, "id",String.valueOf(person.getId()));
            xmlSerial.startTag(null, "name");
            xmlSerial.text(person.getName());
            xmlSerial.endTag(null, "name");
            xmlSerial.startTag(null, "age");
            xmlSerial.text(String.valueOf(person.getAge()));
            xmlSerial.endTag(null, "age");
            xmlSerial.endTag(null, "person");
        }
        xmlSerial.endTag(null, "persons");
        xmlSerial.endDocument();
        os.flush();
        os.close();
    }

Android 学习之pull解析Xml

时间: 2024-10-03 02:47:40

Android 学习之pull解析Xml的相关文章

Android学习笔记——SAX解析XML

XML数据源: <?xml version="1.0" encoding="utf-8"?><WeatherWindow>    <updated>2015-09-08 20:00:00</updated>    <region><![CDATA[上海]]></region>    <today>        <condition><![CDATA[晴

Android 生成和PULL解析xml

一.单个对象生成xml 生成以下xml,该怎么生成呢? <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <account> <id>1</id> <password>123456</password> <name>传说之美</name> <createDate>2015-02-02 11:50:42</createDate>

android学习二十一(使用Pull解析xml)

使用Pull解析xml 为了测试从网上得到的数据信息,我们需要配置一台服务器,我使用的是tomcat6.0,怎么配置tomcat我就不讲解了.配置好了以后在apache-tomcat-6.0.39\webapps\ROOT路径下面放置一个文件就可以通过浏览器来访问了 ,比如:放置了 一个hello.html文件,浏览器进行访问的路径是:http://localhost:8080/hello.html 现在在root目录下新建一个get_data.xml文件,内容如下: <apps> <a

Android开发学习---使用XmlPullParser解析xml文件

Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将主要介绍pull解析器解析xml文件,环境为ubuntu 12.04+ intelij 13.1 + android sdk 2.1 一.创建一个XML项目,步骤如下: 二.解析一个xml文件: assets/person.xml <?xml version="1.0" encodi

Android DOM、SAX、Pull解析XML(转)

本篇随笔将详细讲解如何在Android当中解析服务器端传过来的XML数据,这里将会介绍解析xml数据格式的三种方式,分别是DOM.SAX以及PULL. 一.DOM解析XML 我们首先来看看DOM(Document Object Model)这种方式解析xml,通过DOM解析xml在j2ee开发中非常的常见,它将整个xml看成是一个树状的结构,在解析的时候,会将整个xml文件加载到我们的内存当中,然后通过DOM提供的API来对我们的xml数据进行解析,这种方式解析xml非常的方便,并且我们可以通过

Android下使用pull解析器生成XML文件、读取XML文件

Android下使用Pull解析器 1,Pull解析器的运行方式与SAX解析器相似.它提供了类似的事件,如:开始元素和结束元素事件. 2,使用parser.next()可以进入下一个元素并触发相应事件. 3,事件将作为一个int数值被发送,因此可以使用一个switch对相应的事件进行处理. 4,当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值. 5,相关API: 获得当前节点事件类型:parser.getEventType(); 获得下一节点事件类型

八、Android学习第七天——XML文件解析方法(转)

(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:extensible markup language 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 解析XML的方式: SAX——Simple API for XML,既是一种接口,也是一个软件包采用的是事件驱动,也就是它解析

Android——PULL解析XML

简介 Android中常常使用XML文件保存用户的APP设置信息.因此需要对XML文件的相关操作进行了解.本文将以<学生信息管理系统>为案例背景进行介绍相关的XML解析的介绍,以及其他相关知识的阐述. 需求: 在一个Activity中可以动态添加一个学生信息并保存到XML文件. 同时,还可以查看当前的所有学生信息. 相关技术: 线性布局 设置onClick()事件响应函数 添加一个TextView以显示添加的学生信息 清空所有的子元素(列表中所有的学生信息的TextView) PULL创建XM

android pull 解析xml方式

先获取到一个XmlPullParserFactory实例 通过实例得到XmlPullParser对象 调用XmlPullParser的setInput()方法将服务返回的XML数据设置进去开始解析 通过getEventType()可以得到当前的解析事件 While循环不断地进行解析 如果当前的解析事件不等于XmlPullParser.END_DOCUMENT,说明解析工作还没完成,调用next()方法后可以获取下一个解析事件. 在while循环中,我们通过getName()方法得到当前结点的名字