我解析网页的所有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 :(得分: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);
}