【问题标题】:XMLPullparser getEventType returns 0 everyTimeXMLPullparser getEventType 每次返回 0
【发布时间】:2014-06-30 10:12:52
【问题描述】:

我一直在尝试解析 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 正确到来(通过变量内容),似乎我的代码有一些错误,但我不明白我做错了什么。 答案和建议需要

谢谢!

【问题讨论】:

  • 你能发布你的xml字符串吗?
  • @Haresh 问题已编辑

标签: android xml-parsing xmlpullparser


【解决方案1】:

试试这个方法,希望能帮助你解决问题。

        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();
        }

【讨论】:

  • 瞧!谢谢你,但你能告诉我这些行是什么意思 {factory.setNamespaceaware(true) } 你为什么要改变内容???
  • 指定这个工厂创建的解析器将提供对 XML 命名空间的支持。默认情况下,此值设置为 false,并且在您的 xml“&”中断解析中,因此我尝试将其替换为“&”。
猜你喜欢
  • 2017-09-26
  • 2020-08-09
  • 2013-12-11
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多