2011-10-26 137 views
0

我解析了網頁中的所有TD元素。 有1個TD元素似乎是空的。刪除數組列表中的空值

EUR 1,00 
EUR 2,00 
empty <-- 
EUR 3,00 

我該如何解決這個問題,並從arraylist(結果)中刪除空項目?

預先感謝您。

我的代碼:

try { 

      Document doc = Jsoup.parse(kpo); 
     // Get all td's 
      Elements waardes = doc.select("TBODY"); 
      Iterator<Element> postIt = waardes.select("td").iterator(); 
     // Iterator over those elements  
      //ListIterator<Element> postIt = waardes.listIterator(); 
      postIt.next(); 
      postIt.next(); 
      postIt.next(); 
      postIt.next(); 

      SearchResults sr1 = new SearchResults(); 
      //SearchResults sr2 = new SearchResults(); 

      while (postIt.hasNext()) { 

       sr1 = new SearchResults(); 
       // Add the game text to the ArrayList  
       sr1.setNaam(postIt.next().text()); 
       sr1.setWaarde(postIt.next().text()); 
       results.add(sr1); 
      } 

      } catch (Exception e) { 
     // TODO Auto-generated catch block 
      e.printStackTrace(); 
      } 

      return results; 

     } 

編輯: 我得到它的工作一樣:

while (postIt.hasNext()) { 

    String naam = postIt.next().text(); 
    String waarde = postIt.next().text(); 

    sr1 = new SearchResults(); 

    // Add the text to the ArrayList  
    if (!naam.trim().isEmpty() && !waarde.trim().isEmpty()) { 
     sr1.setNaam(naam); 
     sr1.setWaarde(waarde); 
     results.add(sr1); 
    } 

回答

0

只要確保你已經不加SearchResultswaarde是空的。這樣你就不需要在清理這個和另一個之後進行擺弄。

因此,通過例如

String waarde = postIt.next().text(); 

if (!waarde.trim().isEmpty()) { 
    sr1.setWaarde(waarde); 
    results.add(sr1); 
} 
+0

嗨BalusC, 作品非常好,THX更換

sr1.setWaarde(postIt.next().text()); results.add(sr1); 

:) – Lars