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); 
    }
4

1 回答 1

0

只需确保您在为空SearchResults时没有添加。waarde这样一来,您就不需要事后清理一个和另一个。

所以,更换

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

例如通过

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

if (!waarde.trim().isEmpty()) {
    sr1.setWaarde(waarde);  
    results.add(sr1);
}
于 2011-10-26T21:31:34.420 回答