0

最近、Jsoup を使い始めて、このサンプル コードを見つけました。初心者なので、ウェブサイトからすべてのリンクを見つける方法がわかりません。ほとんどの場合、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とクラスElementは似ています。1 つは選択された単一の要素で構成され、もう 1 つはグループ化された複数の要素のコレクションです。

Elements links-選択されたオブジェクトで構成Elementされます。

このElementsクラスは、Java で次のインターフェースを実装します。

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

このElementsクラスは を使用して実装されているため、コレクションからオブジェクトをArrayList<Element>簡単に追加および削除できます。ElementElements

-loopに関しては、リンクと呼ばれるコレクション内の各オブジェクトforを反復する簡単な方法です。ElementElements

linkループはコレクションを反復処理し、 というコレクション内の現在のElementオブジェクトに変数を割り当てますlinks。-loop内forでは、現在の内容が出力され、コレクション内の次のオブジェクトlinkからループが開始されます。Element


このループの構文はfor-each、リストまたはコレクション内の各オブジェクトを反復するため、ループと呼ばれることがよくあります。

ここでそれを読んでください


Jsoup APIのドキュメントを参照して、使用方法の詳細を確認してください。


Jsoup の実装方法について詳しく知りたい場合は、ソース コードをご覧ください。

于 2013-08-13T15:34:09.010 に答える
2

これはElementsIterable<Element>

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

したがって、for構文を使用すると、リンクをループしますElements。これは実質的にListof typeElementです。「要素リンク」は、反復するときに「リンク」内の各要素に割り当てられるローカル変数です。

詳細については、次を参照してください。

http://jsoup.org/apidocs/org/jsoup/select/Elements.html および http://jsoup.org/apidocs/index.html

于 2013-08-13T15:02:30.530 に答える