用xmlpull解析xml文件

前端之家收集整理的这篇文章主要介绍了用xmlpull解析xml文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

解析xml文件首先有一篇xml文件

<apps> 
    <app> 
        <id>1</id> 
        <name>Google</name> 
        <version>1.0</version> 
    </app> 
    <app> 
        <id>2</id> 
        <name>Chrome</name> 
        <version>2.1</version> 
    </app> 
    <app> 
        <id>3</id> 
        <name>Google Play</name> 
        <version>2.3</version> 
    </app> 
</apps>

首先创建一个XmlPullParserFactory对象;(工厂模式需要newInstance())

XmlPullParserFactory factory=XmlPullParserFactory.newInstance();

再用工厂创建解析器;

XmlPullParser parser=factory.newPullParser();
Reader reader=new StringReader(response);
parser.setInput(reader);
int eventType=parser.getEventType();
        String id="";
        String name="";
        String version="";
        while (eventType!=XmlPullParser.END_DOCUMENT) {
            String nodeName=parser.getName();
            switch (eventType) {

            case XmlPullParser.START_TAG:
                if ("id".equals(nodeName)) {
                    try {
                        id=parser.nextText();
                    } catch (IOException e) {

                        e.printStackTrace();
                    }
                }else if ("name".equals(nodeName)) {
                    try {
                        name=parser.nextText();
                    } catch (IOException e) {

                        e.printStackTrace();
                    }
                }else if ("version".equals(nodeName)) {
                    try {
                        version=parser.nextText();
                    } catch (IOException e) {

                        e.printStackTrace();
                    }
                }


                break;
            case XmlPullParser.END_TAG:
                if ("app".equals(nodeName)) {
                    Log.i("TAG","id="+id);
                    Log.i("TAG","name="+name);
                    Log.i("TAG","version="+version);
                }
                break;

            default:
                break;

            }
            try {
                eventType=parser.next();
            } catch (IOException e) {

                e.printStackTrace();
            }
        }


解析器调用setInput()方法将xml文件数据设置进去开始解析
通过getEventType()得到当前的解析事件,当XmlPullParser.END_DOCUMENT不等于当前的解析事件时,在while循环中不停的解析调用nextText()方法可以获取下一个解析事件。

循环中通过getName()方法得到当前的节点的名字,如果节点等于id,name,version调用nextText()获取节点中的具体内容,解析完一个app节点就打印获取内容

原文链接:https://www.f2er.com/xml/295411.html

猜你在找的XML相关文章