`

android解析xml文件的方式XmlPullParser

 
阅读更多
http://www.cnblogs.com/zhangdongzi/archive/2011/04/15/2016828.html

感覺還是XmlPullParser的方式簡單好用.


public List<River> parse(String xmlPath){
        List<River> rivers=new ArrayList<River>();
        River river=null;
        InputStream inputStream=null;    
        //获得XmlPullParser解析器
        XmlPullParser xmlParser = Xml.newPullParser();   
        try {
            //得到文件流,并设置编码方式
            inputStream=this.context.getResources().getAssets().open(xmlPath);
            xmlParser.setInput(inputStream, "utf-8");
            //获得解析到的事件类别,这里有开始文档,结束文档,开始标签,结束标签,文本等等事件。
            int evtType=xmlParser.getEventType();
         //一直循环,直到文档结束    
         while(evtType!=XmlPullParser.END_DOCUMENT){ 
            switch(evtType){ 
            case XmlPullParser.START_TAG:
                String tag = xmlParser.getName(); 
                //如果是river标签开始,则说明需要实例化对象了
                if (tag.equalsIgnoreCase(RIVER)) { 
                   river = new River(); 
                  //取出river标签中的一些属性值
                  river.setName(xmlParser.getAttributeValue(null, NAME));
                  river.setLength(Integer.parseInt(xmlParser.getAttributeValue(null, LENGTH)));
                }else if(river!=null){
                    //如果遇到introduction标签,则读取它内容
                    if(tag.equalsIgnoreCase(INTRODUCTION)){
                    river.setIntroduction(xmlParser.nextText());
                    }else if(tag.equalsIgnoreCase(IMAGEURL)){
                        river.setImageurl(xmlParser.nextText());
                    }
                }
                break;
                
           case XmlPullParser.END_TAG:
             //如果遇到river标签结束,则把river对象添加进集合中
               if (xmlParser.getName().equalsIgnoreCase(RIVER) && river != null) { 
                   rivers.add(river); 
                   river = null; 
               }
                break; 
                default:break;
            }
            //如果xml没有结束,则导航到下一个river节点
            evtType=xmlParser.next();
         }
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } 
        return rivers; 
    }
分享到:
评论

相关推荐

    android 解析XML文件 生成XML文件

    本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...

    Android 解析xml文件

    本篇将深入探讨Android中解析XML文件的方法,以及如何通过示例代码`ReadXmlConfigFile`来实现这一过程。 ### XML解析器类型 Android提供了多种解析XML的方式,主要包括以下几种: 1. **DOM解析器**:Document ...

    XmlPullParser解析Xml文件解析demo

    XmlPullParser是Android系统提供的一种解析XML文件的API,它是一种基于事件驱动的解析方式,能够高效、节省资源地处理XML文档。在这个“XmlPullParser解析Xml文件解析demo”中,我们将探讨如何利用XmlPullParser来...

    android解析xml的4种方法

    本文将深入探讨在Android环境中解析XML的四种主要方法:DOM、SAX、Pull Parser以及XMLPullParser。 1. DOM解析器: DOM(Document Object Model)是一种将XML文档加载到内存中形成一棵树形结构的方法。它一次性读取...

    android 解析XML文件代码

    本教程将深入讲解如何在Android中解析XML文件,帮助开发者更好地理解和运用这一核心技术。 首先,Android提供了两种主要的XML解析方式:DOM(Document Object Model)解析和SAX(Simple API for XML)解析。DOM解析...

    Android解析xml(3)---Pull解析

    本篇文章将重点讨论如何在Android中使用Pull解析器(PullParser)来解析XML文件。Pull解析器是一种事件驱动的解析方式,它允许应用程序在解析过程中按需获取XML数据,而不是一次性加载整个文档到内存,这使得处理...

    Android 解析XML的三种方式Demo完整版

    本篇文章将深入探讨Android中解析XML的三种主要方法,并通过一个名为"XMLParserDemo"的示例项目来详细阐述每种方法的实现步骤。 ### 1. DOM解析器 DOM(文档对象模型)解析器将整个XML文档加载到内存中,形成一个...

    在android中使用pull解析xml文件

    总结,Android中的XML Pull解析器提供了高效且内存友好的方式来解析XML文件。通过创建解析器、设置输入源、处理事件,开发者可以轻松地从XML文件中提取所需的数据。在实际应用中,结合具体业务逻辑,合理运用XML ...

    android之Pull解析XML文件

    Pull解析器是Android提供的一个API,它允许应用程序通过事件驱动的方式解析XML文档。与SAX解析器类似,Pull解析器不需要预先加载整个XML文档到内存,而是逐个处理XML元素,从而减少了内存消耗,特别适合于处理大型...

    Android XmlPullParser 方式解析 Xml 文档

    Android XmlPullParser 方式解析 Xml 文档 Android XmlPullParser 方式解析 Xml 文档是 Android 平台上的一种解析 Xml 文档的方式。它使用 XmlPullParser 对象来解析 Xml 文档,通过遍历 Xml 文档的所有节点来提取...

    Android解析XML文件的三方法

    在Android开发中,解析XML文件是一项常见的任务,用于读取或写入结构化的数据。本文将详细介绍Android中三种解析XML文件的方法:SAX解析、DOM解析以及Android内置的Pull解析。 1. **SAX解析(Simple API for XML)*...

    Android解析xml文件的3种方式

    本篇文章将详细探讨Android解析XML的三种主要方式:DOM解析、SAX解析和Pull解析。 1. DOM解析(Document Object Model) DOM解析器将整个XML文件加载到内存中,形成一个树形结构,即DOM树。通过DOM解析,你可以轻松...

    XMlPullParser解析网上资源xml

    XMLPullParser是Android开发中用于解析XML文档的一种高效且节省内存的方法。它提供了一种事件驱动的解析模型,允许开发者逐个处理XML文档的元素,而不是一次性加载整个文档到内存中,这对于处理大体积的XML数据尤其...

    Android解析xml的Demo

    在Android开发中,XML(可扩展...在"Android解析xml的Demo"中,你可以找到这三种解析方式的具体实现,通过查看和运行代码,加深对XML解析的理解。同时,这个Demo也可以作为工具,帮助你在项目中快速集成XML解析功能。

    android解析xml源码和ppt.zip

    本资料包“android解析xml源码和ppt”提供了关于Android系统如何解析XML以及相关PPT的深入讲解。以下是关于这个主题的详细知识点: 1. XML解析器类型: - DOM(Document Object Model)解析器:它一次性加载整个...

    Android 解析 XML 三种方法

    总结,Android解析XML的三种方法——SAX、DOM和PULL,各有适用场景。理解它们的工作原理和优缺点,可以帮助我们更好地选择和运用XML解析技术,提高应用的效率和用户体验。在实践中不断学习和探索,才能真正掌握这些...

    android xml pull解析示例

    在Android系统中,XML Pull解析是一种轻量级且高效的解析XML文档的方法,它允许应用程序按需读取XML文档的节点,而无需加载整个文档到内存中。以下是关于Android XML Pull解析的详细知识讲解。 1. **XML Pull解析器...

    android解析xml文件《老罗Android开发视频教程》

    《老罗Android开发视频教程》中关于“android解析xml文件”的部分,主要涵盖了如何在Android系统中处理XML数据,包括基础的DOM解析、SAX解析以及更高效的Pull解析器。 一、DOM解析 DOM(Document Object Model)...

    Android解析XML使用WebView显示

    以上就是“Android解析XML并使用WebView显示”的主要技术点,开发者需要理解并掌握这些知识点,才能在实际项目中顺利实现这一功能。通过不断实践和学习,我们可以更好地理解和运用这些工具,提升应用的质量和用户...

Global site tag (gtag.js) - Google Analytics