2011-10-26 4 views
0

J'analyse tous les éléments TD d'une page Web. Il y a 1 élément TD qui semble être vide.Supprimer les valeurs vides de l'arborescence

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

Comment puis-je résoudre ce problème et supprimer l'élément vide de l'arborescence (résultats)?

Merci d'avance.

Mon code:

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; 

     } 

Edit: Je eu à travailler comme:

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

Répondre

0

Assurez-vous que vous avez déjà ne pas ajouter le SearchResults lorsque le waarde est vide. De cette façon, vous n'avez pas besoin de tripoter après le nettoyage de l'un et de l'autre.

, remplacez

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

par exemple en

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

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

Salut BalusC, fonctionne très bien, thx :) – Lars