1

当 Jsoup 无法找到元素时,我得到一个异常并且程序被终止。我想有一种方法可以在找不到元素时忽略它,以便程序继续运行。

我尝试了以下方法:

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

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

4

2 回答 2

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();
}
于 2013-04-24T16:59:49.103 回答
1

当您尝试访问一个不存在的 listindex 时,就像您的示例中索引 0 处没有元素一样,您将收到 IndexOutOfBoundException。使用 try/catch 构造可以避免异常,但我不会使用“让它崩溃”的概念。相反,我会检查是否真的有一个带有名字的标签。

于 2013-04-24T16:57:49.973 回答