2014-12-21 80 views
-1

我有一個xml文檔,有(我認爲)有點奇怪的結構,讓我有點困擾。它看起來像如下:java.lang.NullPointerException XML標記

<Test1>84.23</Test1> 
<Test2>2014-12-01</Test2> 
<Test3></Test3> 
<Test4>Green</Test4> 
<Test5>Bottle</Test5> 
<Test6/> 
<Test7/> 

的問題是標記<Test3></Test3>結構,你可以SE其他標籤 - 空當 - 只是提供例如<Test6/>

對於「正常」的標籤(例如<Test6/>)我可以使用下面的代碼來檢查它是否爲空,空或返回0

if(eElement.getElementsByTagName("Test6").item(0).getTextContent().isEmpty() 
        || eElement.getElementsByTagName("Test6").item(0).getTextContent().trim().length() == 0 
        || eElement.getElementsByTagName("Test6").item(0).getTextContent() == null)   
        { 
         array[1] = null; 
        } 

但是施加在<Test3></Test3>上述代碼時 - 標籤結構我總是得到java.lang.NullPointerException

我也試過在我的if語句中應用"".equals(eElement.getElementsByTagName("Test6").item(0).getTextContent()),但仍然得到拋出的空異常。

我想要做的就是將數組[1]設置爲null,如果Test3 -tag爲空,0或爲空。我做錯了什麼,如何解決?

回答

1

我預計撥打getElementsByTagName("Test6")會返回一個空的NodeList。如果您在空的NodeList上撥打item(...),它將返回null,無論索引是什麼。然後,您嘗試調用null上的方法,併爲您提供NPE。

我在做什麼錯,我該如何解決?

您需要先測試NodeList大小,然後再嘗試對其進行索引。或者測試null

提示:閱讀javadocs!