Jsoup: «Выберите только ссылки с текстом (), равным» - PullRequest
3 голосов
/ 06 сентября 2011

Один способ обработать ссылки с помощью 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 Ответ

4 голосов
/ 06 сентября 2011

Это не имеет ничего общего с Jsoup, но почему бы не использовать Set, такой как HashSet, для хранения ваших действительных строк?Тогда, если набор был назван «validTextSet», вы могли бы довольно просто и эффективно проверить, находится ли текст в наборе с

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