Jsoup:“只选择带有text()的链接等于”

时间:2011-09-06 02:55:10

标签: java html-parsing jsoup

使用text()等同于某些预定义字符串的链接的一种方法很简单:

Elements links = document.getElementsByTag("a");               
for (Element link : links) {
    if (link.text().equals("So & so") || link.text().equals("such & such") {
        // add link.attr("href") to our container;
    }
}                   

但随着text()条件数量的增加,这种方法的效率越来越低。

在Jsoup中有更好的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:4)

这与Jsoup没有任何关系,但为什么不使用诸如HashSet之类的Set来保存有效的字符串呢?然后,如果该集合被称为“validTextSet”,您可以非常简单有效地测试文本是否在集合中

     if (validTextSet.contains(link.text())) {
        // add link.attr("href") to our container;
     }