【问题标题】:Tag value is not parsed in Xml android pullParser标签值未在 Xml android pullParser 中解析
【发布时间】:2014-09-04 08:40:51
【问题描述】:

我正在解析一个 XML 文档。它工作正常。但是一个值没有被解析。 这是xml文档 http://api.openweathermap.org/data/2.5/forecast/daily?q=Kataragama&mode=xml&units=metric&cnt=7

日期值未解析。

private String day="time";
public String getDay() {
        return day;
    }
public void parseXMLAndStoreIt(XmlPullParser myParser) {
          int event;
          String text=null;
          try {
             event = myParser.getEventType();
             while (event != XmlPullParser.END_DOCUMENT) {
                String name=myParser.getName();
                switch (event){
                   case XmlPullParser.START_TAG:
                   break;
                   case XmlPullParser.TEXT:
                   text = myParser.getText();
                   break;

                   case XmlPullParser.END_TAG:



                      if(name.equals("time")){
                          day = myParser.getAttributeValue(null,"day");
                      }

                      else{
                      }
                      break;
                      }      
                      event = myParser.next(); 

                  }
                     parsingComplete = false;
          } catch (Exception e) {
             e.printStackTrace();
          }

       }

Main.java

day.setText(obj.getDay());

请帮我解决这个问题。提前致谢。

【问题讨论】:

  • 遇到XmlPullParser.START_TAG时不应该检索属性吗?
  • 你能解释一下吗
  • if (name... 中的case 代码部分移动到START_TAG
  • 非常感谢。它奏效了。
  • 您是否正在执行 else 语句中的任何任务以及调试 if 语句中 day 的值 if(name.equals("time")){ day = myParser.getAttributeValue(null,"天”); } 其他{ }

标签: android xml-parsing android-xmlpullparser


【解决方案1】:

这是因为您的 if(name) 条件在您的 switch 块中。 删除case XmlPullParser.START_TAGOR:

String day=null;

        try {
              while (myParser.getEventType()!= XmlPullParser.END_DOCUMENT) {
                      if(myParser.getEventType()==XmlPullParser.START_TAG && myParser.getName().equals("time")
                        day= myParser.getAttributeValue(null,"day");  
        }
     }catch(IndexOutOfBoundsException e){
    day= myParser.getAttributeValue(0);}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多