android如何解析 XML XmlPullParser 在 Java 中的字符串?

标签: Java Android XML
发布时间: 2016/9/26 4:24:03
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有这 xml :

<xml><result>-1</result></xml>

和下面的 java 代码︰

public String findElement(String xml, String elem) {
    try {
        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        XmlPullParser xpp = factory.newPullParser();

        xpp.setInput( new StringReader (xml) );

        while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) {
            if (xpp.getName().equals(elem)) {
                return xpp.getText();
            }
            xpp.next();
        }
    } catch (XmlPullParserException | IOException e) {
        e.printStackTrace();
    }
    return null;
}

但是 xpp.getName() 返回 null 而不是 "result" 。由于 NullPointerException 是扔。

我在哪里错了?

解决方法 1:

更改您的代码像这样。

        int eventType = xpp.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            if (eventType == XmlPullParser.START_TAG) {
                if (xpp.getName().equals(elem)) {
                    eventType = xpp.next(); // advance to inner text
                    return xpp.getText();
                }
            }
            eventType = xpp.next();
        }
赞助商