Android 4.0冰淇淋三明治Dom Parser Null Pointer

时间:2011-11-09 07:53:51

标签: android dom

到目前为止,我一直在使用此代码来解析xml。它在以前的android版本中运行良好(直到2.3.3)。


NodeList list = element.getElementsByTagName("course");         

Element entry;                              
Element title;

if(list != null && list.getLength() > 0){


     for(int i=0;i < list.getLength(); i++){

        entry = (Element)list.item(i);                              
        title = (Element)entry.getElementsByTagName("course").item(0);  

        biz_name_p = title.getAttribute("biz_name");

    }
}

我有多个标签名为&#34;当然&#34;所以我把它放在一个清单中。内部循环我正在检查元素过程并从中提取几个字符串值。

当我尝试NullPointerException或任何其他属性时,它会抛出getAttribute("biz_name")

这在以前的版本中工作正常,直到ICS ......

当我替换&#34;当然&#34;在列表中使用主标记(在整个xml中只重复一次), 我收到字符串值但只有一次......他们是否改变了Dom解析器中的任何东西?

修改
以下是我试图解析的xml ..

<golf> 
    <course biz_name="Club Circle Golf Course"/>  
    <course biz_name="Club Circle Golf Course1"/>
    <course biz_name="Club Circle Golf Course2"/>
</golf>

1 个答案:

答案 0 :(得分:0)

我不明白为什么多次调用getElementsByTagName。所以你可以试试这个:

NodeList list = element.getElementsByTagName("course");         

Element entry;

if(list != null && list.getLength() > 0){

     for(int i=0;i < list.getLength(); i++){

        entry = (Element)list.item(i);
        biz_name_p = entry.getAttribute("biz_name");
    }
}