В Jsoup возможно ли получить элементы из списка элементов без прохождения через него? - PullRequest
3 голосов
/ 16 июля 2011

Я новичок в Jsoup, но это отличный инструмент.Я пытаюсь извлечь метатег роботов.

У меня есть следующий код:

Document doc = Jsoup.parse(htmlContent);
Elements metatags = doc.select("meta");
Element robots = metatags.attr("name", "robots"); // is getting the first element of the list

Последняя строка неверна.

Я хочу знать, нужно ли запускать список элементов, чтобы найти элемент, соответствующий атрибуту, или найти способ извлечь элемент, соответствующий атрибуту, из списка элементов.

Редактировать 1: я решил это изменение на doc.select("meta[name=robots]").

Редактировать 2: Другими словами: я хочу знать, как получить все элементы в Elements list, который соответствует некоторому реквизиту атрибута.

Редактировать 3: я был спешно задал этот вопрос, потому что я еще не видел основную документацию.К сожалению.

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Можно установить атрибут и значение, которое вы хотите получить в методе select(), чтобы улучшить фильтрацию.

Измените выбор на: doc.select("meta[name=robots]");, и он получит все элементы, которые имеют метатег и атрибут name, равный роботам.

1 голос
/ 16 июля 2011

Вы читали документацию JSoup?Вот от используемого вами метода:

attr

public Elements attr(String attributeKey,
                     String attributeValue)

    Set an attribute on all matched elements.

    Parameters:
        attributeKey - attribute key 
        attributeValue - attribute value 
    Returns:
        this 

Возвращает это.Это означает, что он вернет объект Elements.Его нельзя присвоить объекту Element.

Я также думаю, что вы хотите использовать Document.getElementsByTag(String) вместо select.

...