我正在解析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());
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
这是因为您的if(name)
条件位于您的交换机块中。
删除case XmlPullParser.START_TAG
OR:
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);}