Android 4.0 мороженое сэндвич ошибки парсера - PullRequest
1 голос
/ 09 ноября 2011

Я сделал приложение, которое читает информацию из 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 (получал 1 в предыдущих версиях android), так что парсер это условие.Для удобства я получаю желаемый размер списка.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Единственная причина, по которой я могу думать, это то, что "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...*/
0 голосов
/ 27 апреля 2012

У меня была такая же проблема. Я переключаюсь с DOM на XPath. Подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...