Android--xml解析(代码)

public class MainActivity extends AppCompatActivity {

    String xmlString = "<apps>\n" +
                           "\t<app>\n" +
                           "\t\t<id>1</id>\n" +
                           "\t\t<name>google map</name>\n" +
                           "\t\t<version>1.0</version>\n" +
                           "\t</app>\n" +
                           "\t\n" +
                           "\t<app>\n" +
                           "\t\t<id>2</id>\n" +
                           "\t\t<name>google play</name>\n" +
                           "\t\t<version>2.0</version>\n" +
                           "\t</app>\n" +
                           "\t\n" +
                           "\t<app>\n" +
                           "\t\t<id>3</id>\n" +
                           "\t\t<name>chrome</name>\n" +
                           "\t\t<version>3.0</version>\n" +
                           "\t</app>\n" +
                           "\n" +
                           "</apps>";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser xmlPullParser = factory.newPullParser();
            //放要解析的xml数据
            xmlPullParser.setInput(new StringReader(xmlString));

            String id = "";
            String name = "";
            String version = "";

            //获取每个节点的数据类型
            int eventType = xmlPullParser.getEventType();

            //DOCUMENT 指的是文档的结束
            while(XmlPullParser.END_DOCUMENT != eventType){
                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:
                        //最后的文档结尾
                        Log.i("XMLPARSE",id);
                        Log.i("XMLPARSE",name);
                        Log.i("XMLPARSE",version);
                        break;
                        default:break;
                }
                //这个节点执行完就执行下个节点
                eventType = xmlPullParser.next();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

猜你喜欢

转载自blog.csdn.net/ykx_1448488568/article/details/81697914
今日推荐