我使用以下代码使用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'显示正确。我在这里做错了什么?
答案 0 :(得分:8)
从您的代码中
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())