0

最近我开始使用 Jsoup 并找到了这个示例代码。因为我是新手,所以我不知道这是如何找到网站上的所有链接的。谁能解释一下 for 循环中发生了什么?大多数情况下,我以前从未使用过这种 for 循环语法,所以对我来说有点困惑。我不确定循环包含什么。谢谢!

    Elements links = doc.select("a[href]");
    for (Element link : links) {

        // get the value from href attribute
        System.out.println("\nlink : " + link.attr("href"));
        System.out.println("text : " + link.text());

    }
4

2 回答 2

2

这是因为Elements实现Iterable<Element>

(org.jsoup.select.Elementsjava.lang.Iterable)

因此,当您使用for语法时,您会遍历Elements链接,这实际上是 aList类型的Element。“元素链接”是在迭代时分配给“链接”中每个元素的局部变量。

有关详细信息,请参阅:

http://jsoup.org/apidocs/org/jsoup/select/Elements.htmlhttp://jsoup.org/apidocs/index.html

于 2013-08-13T15:02:30.530 回答
2

顾名思义,类Elements和类Element是相似的。一个由已选择的单个元素组成,另一个是组合在一起的多个元素的集合。

Elements linksElement已选择的对象组成。

该类Elements在java中实现了以下接口:

Cloneable, Iterable< Element>, Collection< Element>, List< Element>.

该类Elements是使用 实现的ArrayList<Element>,因此很容易从集合中添加和删除Element对象。Elements

当涉及到for-loop 时,它是一种遍历集合中称为链接的每个Element对象的简单方法。Elements

循环将遍历集合,并将变量分配给集合中名为link的当前对象。在-loop 内部,当前的内容将被打印出来,并且循环从集合中的下一个对象开始。ElementlinksforlinkElement


此循环的语法通常称为for-each循环,因为它遍历列表或集合中的每个对象。

在这里阅读它!


查看Jsoup API文档以了解有关如何使用它的更多信息!


如果您想了解更多关于 Jsoup 是如何实现的,请查看源代码

于 2013-08-13T15:34:09.010 回答