我正在解析一个XML文档。它运行良好。但是有一个值没有被解析。这是xml文档http://api.openweathermap.org/data/2.5/forecast/daily?q=Kataragama&mode=xml&单位=公制&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());
请帮我做这个。提前谢谢。
这是因为您的if(name)
条件在您的开关块中。移除case XmlPullParser.START_TAG
或:
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);}