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

Arv*_*ind 3 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;
}
Run Code Online (Sandbox Code Playgroud)

问题是对于包含元生成器标记的页面,没有显示任何值(当我输出变量'metarequired'的值时.对于没有元生成器标记的页面,正确显示值'NOT_FOUND'我在这做错了什么?

Bal*_*usC 8

从你的代码,

metalinks.first().select("content").toString();
Run Code Online (Sandbox Code Playgroud)

这是不正确的.这只是选择

<meta ...>
    <content ... /> <!-- This one, which of course doesn't exist. -->
</meta>
Run Code Online (Sandbox Code Playgroud)

而你实际上想要获得属性

<meta ... content="..." />
Run Code Online (Sandbox Code Playgroud)

你需要使用attr("content")而不是select("content").

metatagcontent = metalinks.first().attr("content");
Run Code Online (Sandbox Code Playgroud)

也可以看看:


具体问题无关,您不需要对块boolean内部进行测试if.该isEmpty() 返回boolean:

if (!metalinks.isEmpty())
Run Code Online (Sandbox Code Playgroud)