如何提取meta name = generator标签的content属性?

时间:2011-11-28 13:32:34

标签: java html-parsing jsoup

我使用以下代码使用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 个答案:

答案 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())