我制作了一个从Api读取信息的应用程序。
链接:http://api.amp.active.com/camping/campground/details?contractCode=CO&parkId=50032&api_key=2chxq68efd4azrpygt5hh2qu
以下是我的代码:
NodeList list = element.getElementsByTagName("detailDescription");
Log.i("ZealDeveloper","I M In detail "+list.getLength());
if(list != null && list.getLength() > 0){
for(int i = 0; i < list.getLength(); i++){
entry = (Element) list.item(i);
description = entry.getAttribute("description");
drivingDirection = entry.getAttribute("drivingDirection");
latitude=entry.getAttribute("latitude");
longitude=entry.getAttribute("longitude");
}
}
NodeList list1 = element.getElementsByTagName("amenity");
Log.i("ZealDeveloper","I M In 2 "+list1.getLength());
if(list1 != null && list1.getLength() > 0){
for(int i = 0; i < list1.getLength(); i++){
entry = (Element) list1.item(i);
nameAmenity = entry.getAttribute("name");
listAmenity.add(nameAmenity);
}
arrAmenity = listAmenity.toArray(new String[listAmenity.size()]);
StringBuilder builder = new StringBuilder();
for ( int i = 0; i < arrAmenity.length; i++ ){
builder.append(arrAmenity[i]+"\n");
}
txtAmenity.setText(builder);
}
#
我正在将
list.getLength()
作为0
(在以前的android版本中正在获取1
),因此解析器会遇到这种情况。对于便利标签,我正在获取所需的列表大小。 最佳答案
我能想到的唯一原因是“ detailDescription”已经是文档的根目录,因此element
可能就是您要寻找的标签。它没有名称为“ detailDescription”的子级,因此getElementsByTagName("detailDescription")
返回空列表。因此,如下更改代码的前半部分:
Log.i("ZealDeveloper","I M In detail " + element.getTagName());
if(element.getTagName().equalsIgnoreCase("detailDescription")) {
description = element.getAttribute("description");
drivingDirection = element.getAttribute("drivingDirection");
latitude = element.getAttribute("latitude");
longitude = element.getAttribute("longitude");
}
/* rest of your code...*/