欢迎访问我的个人博客,一起学习交流。^_^

1. 待解析XML文件

<apps>    <app>        <id>1id>        <name>Google Mapsname>        <version>1.0version>    app>    <app>        <id>2id>        <name>Chromename>        <version>2.1version>    app>apps>

2. pull解析方式

private void parseXMLWithPull(String xmlData){        try{            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();            XmlPullParser xmlPullParser = factory.newPullParser();            xmlPullParser.setInput(new StringReader(xmlData));            int eventType = xmlPullParser.getEventType();            String id = "";            String name = "";            String version = "";            while(eventType != XmlPullParser.END_DOCUMENT){                String nodeName = xmlPullParser.getName();                switch (eventType){                    //开始解析某个节点                    case XmlPullParser.START_TAG:{                        if("id".equals(nodeName)){                            id = xmlPullParser.nextText();                        }else if("name".equals(nodeName)){                            name = xmlPullParser.nextText();                        }else if("version".equals(nodeName)){                            version = xmlPullParser.nextText();                        }                        break;                    }                    //完成解析某个节点                    case XmlPullParser.END_TAG:{                        if("app".equals(nodeName)){                            Log.d("MainActivity","id is "+id);                            Log.d("MainActivity","name is "+name);                            Log.d("MainActivity","version is "+version);                        }                        break;                    }                    default:                        break;                }                eventType = xmlPullParser.next();            }        }catch (Exception e){            e.printStackTrace();        }    }

首先获取一个XmlPullParseFactory 的实例,并借助这个实例得到XmiPullParser 对象,然后调用XmlPullParser 的setInput() 方法将XML数据放置进去就可以开始解析了。

解析的过程,通过getEventType() 可以得到当前的解析时间,然后在一个while循环中不断地进行解析,如果当前事件不等于XmlPullParse.END_DOCUMENT ,说明解析工作还没完成,调用next() 方法后可以获得下一个解析事件。

在while循环中,我们通过getName() 方法得到当前节点的名字,如果发现节点名等于id、name或version,就调用nextText() 方法来获取节点内具体的内容,每当解析完一个app节点后就将获取到的内容打印出来。

3. SAX解析方式

4. DOM解析方式

5. 比较

有空再总结……

更多相关文章

  1. Android中的常见FC及解决方式整理
  2. Android(安卓)Intent多种传值方式
  3. android解析xml的通用写法
  4. Android(安卓)ApiDemos示例解析(178):Views->Lists->11. Multipl
  5. android 创建快捷方式
  6. android 自带 xml解析
  7. android解析二维数组对象key:value
  8. android XML解析
  9. Android跳转到系统Wifi界面的方式

随机推荐

  1. android实现服务器图片本地缓存
  2. Android EditText 光标控制,颜色修改,显示
  3. 利用 Android Keystore 系统 加密存储和
  4. Android笔记1
  5. Android TextView全属性
  6. Android中对Handle机制的理解
  7. android 中的 Broadcast 机制详解
  8. Android Studio开发基础之AutoCompleteTe
  9. Android应用程序用真机调试步骤
  10. Android Studio系列(二)使用Android Studio