2011-11-09 54 views
1

我一直在使用此代碼來解析xml至今。它在以前的android版本中工作得很好(直到2.3.3)。Android 4.0冰淇淋三明治Dom Parser空指針


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"); 

    } 
} 

我有一個名爲「當然」多標籤,所以我在列表服用。內部循環即時檢查元素課程,並從中提取幾個字符串值。

它會拋出NullPointerException當我嘗試getAttribute("biz_name")或任何其他屬性。

這是工作在以前的版本,直到ICS精...

當我更換列表中的「過程」與主標籤(僅在整個XML重複一次), 我收到的字符串值,但只有一次......他們是否改變了Dom解析器中的任何事情?

編輯
以下是XML IM試圖解析..

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

也請發表您的XML,或至少,它的某些部分與質疑 – Caner

+0

@LAS_VEGAS:我的壞...以下是XML IM試圖解析.. <當然biz_name = 「俱樂部圈高爾夫球場」/> <當然biz_name = 「俱樂部圈高爾夫Course1」/> <當然biz_name = 「俱樂部圈高爾夫Course2」/> ZealDeveloper

回答

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"); 
    } 
} 
+0

日Thnx很多..這似乎正常工作......但我不明白爲什麼它在透明的android版本中工作正常,而不是在ICS中工作? – ZealDeveloper

+0

我不明白。但我預計這也適用於以前的版本。 – Caner

+0

是的這是工作正常..但我有複雜的XML其中包含一些屬性的根標籤和其中有幾個標籤裏面有自己的屬性 我正在爲每個標籤創建節點列表直到現在,但在ICS即時獲得0作爲根標籤的節點列表長度(獲得1個以前的android版本)..以下是該鏈接xml http://api.amp.active.com/camping/campground/details?contractCode=CO&parkId=50032&api_key=2chxq68efd4azrpygt5hh2qu 對不起不格式化的東西正確即時通訊新的堆棧溢出:) 日Thnx爲您超快速的答覆... – ZealDeveloper

相關問題