Android:使用xmlpullparser解析

时间:2014-04-19 21:28:11

标签: android xml xmlpullparser

我在res/xml/data.xml位置有一个xml文件 我需要解析那个xml文件

XmlResourceParser xrp=context.getResources().getXml(R.xml.data);

我用这段代码来获取该文件。它返回XmlResourceParser 还尝试使用xmlpullparser

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();

我在这两个解析器之间没有清楚的想法。我的问题是如何使用xmlpullparser解析资源文件夹中的xml文件?

1 个答案:

答案 0 :(得分:2)

XmlResourceParser是一个interface,其范围为XmlPullParser

getXml将返回XmlResourceParser个对象。您可以使用XMLPullParser

读取解析器文本,类似于我们解析输入流或字符串的方式

以下是从资源xml

解析的示例代码
 try {
        XmlResourceParser xmlResourceParser = getResources().getXml(R.xml.data);

        int eventType = xmlResourceParser.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            if (eventType == XmlPullParser.START_DOCUMENT) {
                System.out.println("Start document");
            } else if (eventType == XmlPullParser.START_TAG) {
                System.out.println("Start tag " + xmlResourceParser.getName());
            } else if (eventType == XmlPullParser.END_TAG) {
                System.out.println("End tag " + xmlResourceParser.getName());
            } else if (eventType == XmlPullParser.TEXT) {
                System.out.println("Text " + xmlResourceParser.getText());
            }
            eventType = xmlResourceParser.next();
        }
        System.out.println("End document");
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }