XMLPullparser getEventType每timeTime返回0

时间:2014-06-30 10:12:52

标签: android xml-parsing xmlpullparser

我一直试图解析XML文件,但getEventType方法总是返回0.而While循环正在永远执行。

public class FlowerPullParser 

{

public static List<Flower> parseFed(String content) throws XmlPullParserException, IOException
{

    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    XmlPullParser parser = factory.newPullParser();

    parser.setInput(new StringReader(content));

    int eventType = parser.getEventType();

    do
    {

        if(eventType == XmlPullParser.START_TAG)
            Log.i("start-tag",parser.getText());


        else if(eventType ==  XmlPullParser.END_TAG)
            Log.i("End-tag",parser.getText());

        else if(eventType ==  XmlPullParser.TEXT)
            Log.i("Text-tag",parser.getText());


    eventType = parser.next();  
    }while(eventType != XmlPullParser.END_DOCUMENT);
    return null;

}
    }

以下是我获取XML的链接

Flowers.xml

XML正在到来(通过可变内容),似乎我的代码有一些错误,但我无法理解我做错了什么。 答案和建议需要

谢谢!

1 个答案:

答案 0 :(得分:2)

请尝试这种方式,希望这有助于您解决问题。

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

        xpp.setInput(new StringReader(content.replace("&","&amp;")));
        int eventType = xpp.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 "+xpp.getName());
            } else if(eventType == XmlPullParser.END_TAG) {
                System.out.println("End tag "+xpp.getName());
            } else if(eventType == XmlPullParser.TEXT) {
                System.out.println("Text "+xpp.getText());
            }
            eventType = xpp.next();
        }