【问题标题】:Android 4.0 ice cream sandwich Parser ErrorsAndroid 4.0 冰淇淋三明治解析器错误
【发布时间】:2011-12-25 08:55:18
【问题描述】:

我做了一个从 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),所以解析器会出现这种情况。对于便利设施标签,我正在获得所需的列表大小。

【问题讨论】:

    标签: android parsing dom


    【解决方案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...*/
    

    【讨论】:

      【解决方案2】:

      我有同样的问题。我从 DOM 切换到 XPath。更多here

      【讨论】:

      • 我需要将 nodeList 作为一个 Document 我该怎么做,因为之后我将使用 getElementByTagName。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 2013-03-29
      相关资源
      最近更新 更多