Jsoup - 如何处理未找到的元素

时间:2013-04-24 16:51:08

标签: java jsoup

当Jsoup无法找到元素时,我得到一个异常并且程序终止。我想有办法忽略它,当找不到元素时,程序会继续运行。

我尝试了以下方式:

Element contactHtml = null;
String person = "";
Document doc = Jsoup.parse(html);
try {
    contactHtml = doc.select("p.initial-contact").get(0);
    person = contactHtml.text();
}  finally {}

但当元素不存在时,程序仍会终止。有没有办法创建代码,只是忽略不存在的元素?

2 个答案:

答案 0 :(得分:3)

试试这个:

Element contactHtml = null;
String person = "";
Document doc = Jsoup.parse(html);

Elements elements = doc.select("p.initial-contact");
if(!elements.isEmpty()) {
   contactHtml = elements.get(0);
   person = contactHtml.text();
}

答案 1 :(得分:1)

当您尝试访问不存在的listindex时,例如在您的示例中没有索引0处的元素,您将获得IndexOutOfBoundException。使用try / catch构造可以避免Exception,但我不会使用“let-it-crash”概念。相反,我会检查是否有一个带有名称的标签。