在Jsoup中,是否可以从元素列表中获取元素而不通过它运行?

时间:2011-07-16 13:57:15

标签: java robots.txt jsoup

我是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

最后一行是错误的。

我想知道是否需要运行元素列表来查找与该属性匹配的元素,或者有一种方法可以从Elements列表中提取与该属性匹配的元素。

编辑1:我解决了这个问题,改为doc.select("meta[name=robots]")

编辑2:换句话说:我想知道如何使Elements list中的所有元素与某些属性必需匹配。

编辑3:因为我还没有看到主要文档,所以我很难做到这个问题。遗憾。

2 个答案:

答案 0 :(得分:2)

可以在select()方法中设置要检索的属性和值,以便进行更好的过滤。

将选择更改为:doc.select("meta[name=robots]");,它将获取具有元标记的所有元素,并且其名称属性等于机器人。

答案 1 :(得分:1)

您是否阅读过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