Как извлечь атрибут содержимого тега meta name = generator? - PullRequest
3 голосов
/ 28 ноября 2011

Я использую приведенный ниже код для извлечения содержимого тега мета-генератора с веб-страницы с помощью Jsoup:

Elements metalinks = doc.select("meta[name=generator]");
boolean metafound=false;

if(metalinks.isEmpty()==false)
{ 
    metatagcontent = metalinks.first().select("content").toString();
    metarequired=metatagcontent;
    metafound=true;
}
else 
{
    metarequired="NOT_FOUND";
    metafound=false;
}

Проблема заключается в том, что для страницы, содержащей тег мета-генератора, нет значения(при выводе значения переменной «metarequired». Для страницы, у которой нет метатегенераторного тега, значение «NOT_FOUND» отображается правильно. Что я здесь не так делаю?

1 Ответ

8 голосов
/ 28 ноября 2011

Из вашего кода

metalinks.first().select("content").toString();

Это не правильно. Это просто выбор

<meta ...>
    <content ... /> <!-- This one, which of course doesn't exist. -->
</meta>

пока вы на самом деле хотите получить атрибут

<meta ... content="..." />

Вам нужно использовать attr("content") вместо select("content").

metatagcontent = metalinks.first().attr("content");

Смотри также:


Не имеет отношения к конкретной проблеме, вам не нужно проверять boolean внутри блока if. isEmpty() уже возвращает boolean:

if (!metalinks.isEmpty())
...