我制作了一个从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...*/

10-05 20:59
查看更多