标记值不在Xml中解析android pullParser
问题描述:
我正在解析一个XML文档。它工作正常。但是一个值不被解析。 这是XML文档 http://api.openweathermap.org/data/2.5/forecast/daily?q=Kataragama&mode=xml&units=metric&cnt=7标记值不在Xml中解析android pullParser
的日期值不会被解析。
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
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);}
你不应该获取的属性,当你遇到'XmlPullParser.START_TAG'? – Luksprog 2014-09-04 09:30:41
能否请你解释一下 – Isuru 2014-09-04 09:36:24
把'if ...(name ...'代码部分放在'case'中作为'START_TAG'。 – Luksprog 2014-09-04 09:38:33