`
zhuqiang5138
  • 浏览: 31651 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

My Android成长之路(四)——【xml解析之XmlPull】

 
阅读更多
在android中xml的解析也是比较方便的 因为android也集成了一些常用的xml解析方法,
如:XmlPull
public class PullPersonService {

    /**
     * 使用pull解析器生成xml文件
     * 
     * @param persons
     * @param writer
     * @return
     */
    public static String writeXML(List<Person> persons, Writer writer){
        XmlSerializer serializer = Xml.newSerializer();
        try {
            serializer.setOutput(writer);
            serializer.startDocument("UTF-8", true);
            //第一个参数为命名空间,如果不使用命名空间,可以设置为null
            serializer.startTag("", "persons");
            for (Person person : persons){
                serializer.startTag("", "person");
                serializer.attribute("", "id", person.getId().toString());
                serializer.startTag("", "name");
                serializer.text(person.getName());
                serializer.endTag("", "name");
                serializer.startTag("", "age");
                serializer.text(person.getAge().toString());
                serializer.endTag("", "age");
                serializer.endTag("", "person");
            }
            serializer.endTag("", "persons");
            serializer.endDocument();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return writer.toString();
    }
    
    /**
     * 使用pull解析器解析xml文件
     * 
     * @param inStream
     * @return
     * @throws Exception
     */
    public static List<Person> readXML(InputStream inStream) throws Exception {
        XmlPullParser parser = Xml.newPullParser();
        parser.setInput(inStream, "UTF-8");
        int eventType = parser.getEventType();
        Person currentPerson = null;
        List<Person> persons = null;
        while (eventType != XmlPullParser.END_DOCUMENT) {
            switch (eventType) {
            case XmlPullParser.START_DOCUMENT:// 文档开始事件,可以进行数据初始化处理
                persons = new ArrayList<Person>();
                break;
            case XmlPullParser.START_TAG:// 开始元素事件
                String name = parser.getName();
                if (name.equalsIgnoreCase("person")) {
                    currentPerson = new Person();
                    currentPerson.setId(new Integer(parser.getAttributeValue(null, "id")));
                } else if (currentPerson != null) {
                    if (name.equalsIgnoreCase("name")) {
                        currentPerson.setName(parser.nextText());// 如果后面是Text元素,即返回它的值
                    } else if (name.equalsIgnoreCase("age")) {
                        currentPerson.setAge(new Short(parser.nextText()));
                    }
                }
                break;
            case XmlPullParser.END_TAG:// 结束元素事件
                if (parser.getName().equalsIgnoreCase("person")&& currentPerson != null) {
                    persons.add(currentPerson);
                    currentPerson = null;
                }
                break;
            }
            eventType = parser.next();
        }
        inStream.close();
        return persons;
    }

}


student.xml 代码贴不了 郁闷
分享到:
评论

相关推荐

    android开发之xml文件操作——xml创建和pull解析xml

    本项目主要关注的是XML的创建和使用Pull解析器来解析XML,这是Android系统中处理XML数据的一种高效方法。接下来,我们将详细讨论这两个知识点。 首先,XML(Extensible Markup Language)是一种用于标记数据的语言...

    Android XML解析—— Pull解析XML(待完善)

    Android SDK提供了`org.xmlpull.v1.XmlPullParser`接口,用于实现XML Pull解析。这个接口定义了一系列的方法,如`next()`, `getName()`, `getEventType()`等,允许开发者顺序地遍历XML文档的各个节点。 **使用步骤*...

    安卓Android源码——比较通用的xml解析方法.zip

    本压缩包文件"安卓Android源码——比较通用的xml解析方法.zip"可能包含了一些关于如何在Android系统中解析XML的通用方法和技术。以下是关于Android XML解析的一些关键知识点: 1. **DOM解析**: - DOM(Document ...

    xml解析+kxml2+xmlpull

    以上就是关于“xml解析+kxml2+xmlpull”的主要知识点,包括XML解析方式、KXML2解析库、XML Pull解析的原理及其实现,以及如何在实际项目中结合使用KXML2进行XML文档的解析。理解并掌握这些内容,将有助于你在处理XML...

    xmlpull(java新型xml解析技术)

    XMLPull是Java中的一种轻量级、高性能的XML解析技术,它主要用于处理XML文档。XMLPull的名字来源于“XML Pull Parsing”,意为“拉取式XML解析”。这种解析方式与SAX(Simple API for XML)和DOM(Document Object ...

    对xml文件进行xmlpull解析jar包

    在处理XML文件时,有多种解析方式,其中XMLPull解析是一种轻量级、高效的解析方法,适用于资源有限的环境,如移动设备。XMLPull解析器允许应用程序以拉取(pull)的方式逐个读取XML元素,而不是等待整个文档加载完毕...

    android xmlpull详细源代码

    总之,XMLPull解析是Android开发中处理XML数据的一种高效方法。通过掌握其核心概念和API,开发者可以灵活地解析和构建XML文档,同时减少对内存资源的消耗。在实践中,不断调试和优化代码,能够进一步提升解析效率,...

    Android XML解析(DOM、PULL、SAX三种方式)

    Android提供了`org.xmlpull.v1.XmlPullParser`接口来实现PULL解析。开发者需要通过注册事件监听,如开始元素、结束元素等,来处理XML。`DomXmlOperate`中的代码可能演示了如何创建`XmlPullParser`实例,以及如何在...

    Android网络下的XML解析和生成.

    3. Pull解析器:Android提供了一个基于SAX的轻量级解析器——Pull解析器。它允许开发者通过迭代的方式解析XML,无需等待整个文件加载完成,提高了效率。 二、Android中的XML解析库 1. Android自带的XmlPullParser...

    在android中使用pull解析xml文件

    本文将深入探讨如何在Android中使用Pull解析器解析XML文件。 一、XML Pull解析器简介 XML Pull解析器(XML Pull API)是一种基于事件驱动的解析模型,它不需预先加载整个XML文档,而是逐行读取,当遇到特定的XML...

    Android应用源码之比较通用的xml解析方法.zip

    本资源“Android应用源码之比较通用的XML解析方法.zip”包含了关于在Android平台上进行XML解析的一些通用方法和实践。以下是关于这个主题的详细讲解。 1. DOM解析器:Document Object Model(DOM)解析器是Android...

    Android源码——ReadXmlByPull 使用Pull解析Xml文件.zip

    Android的`org.xmlpull.v1.XmlPullParser`接口是Pull解析的核心,它提供了一系列的方法来读取和解析XML文档。使用步骤如下: 1. **获取解析器**:首先,需要通过`XmlPullParserFactory`工厂类创建一个`...

    Android代码-比较通用的xml解析方法.rar

    本压缩包“Android代码-比较通用的xml解析方法.rar”提供了一些通用的XML解析方法,这些方法对于理解和处理XML数据至关重要。下面将详细介绍XML解析在Android中的应用及其常见方法。 1. DOM解析器(Document Object...

    Android中XML数据解析

    除了这些解析方式,Android还提供了`org.json`库用于解析JSON数据,以及`org.xmlpull.v1.XmlSerializer`用于生成XML。XML数据在网络通信中通常与HTTP协议结合,通过`java.net.HttpURLConnection`或`android.util....

    Android review xml 解析 生成

    本篇将深入探讨Android中的XML解析,包括DOM解析、SAX解析和Pull解析,以及如何生成XML文件。 1. DOM解析: DOM(Document Object Model)是一种将XML文档转化为树形结构的方法,允许开发者通过节点遍历和操作XML...

    老罗Android视频开发教程 android解析xml文件代码

    老罗的Android视频教程深入浅出地讲解了如何在Android平台上解析XML文件,这对于开发者来说是非常重要的技能。以下是对这个主题的详细解释。 1. **XML基本概念** XML是一种自描述的语言,其结构清晰,易于机器和...

    XmlPull解析XML

    XMLPull解析XML是一种轻量级、高效的处理XML文档的方式,尤其在资源有限的移动设备如Android平台上尤为适用。它的全称是XML Pull Parser,是一种基于事件驱动的解析模型,允许开发者顺序读取XML文档,而无需构建整个...

    此代码用于对android中XML类型的数据进行完整的解析

    1. **Android XML解析库**:Android SDK提供了内置的XML解析库,包括`javax.xml.parsers`和`org.w3c.dom`包,以及针对Android优化的`org.xmlpull.v1.XmlPullParser`接口。`XmlPullParser`是Android推荐的XML解析方式...

    xstream+xmlpull xml to bean &&bean to xml

    XMLPull是轻量级的API,用于解析XML文档,它允许开发者以事件驱动的方式处理XML流,而无需提前加载整个文档到内存中。 XStream的核心功能在于它的“marshalling”和“unmarshalling”能力。Marshalling是将Java对象...

Global site tag (gtag.js) - Google Analytics