0

次のようなhtmlファイルがあります

<div class="student">
<h4 id="Classnumber100" class="studentheading">
   <a id="studentlink22" href="/grade8/greg">22. Greg</a>
</h4>
<div class="studentcategories">
<div class="studentneighborhoods">
</div>
</div>
</div>

JSOUP を使用して、url = /grade8/greg と "22. Greg" を取得したいと考えています。

セレクターでやってみた

    Elements listo = doc.select("h4 #studentlink22");

値を取得できません。

実際には Classnumber100 に基づいて選択したい HTML ページには 300 個のレコードがあり、一貫しているのは "Classnumber100.

したがって、セレクターで classnumber100 の後のすべての href とテキストを選択する必要があります。どうやってやるの。

doc.select("class#studentheading"); を試しました および他の多くの可能性がありますが、機能していません

4

2 に答える 2

1

まず第一に、複数の要素が同じ id を共有してはならないため、これらの要素のそれぞれがid を持つべきではありませんClassnumber100。ただし、その場合でも、セレクターを使用してそれらを選択できます[id=Classnumber100]

内部のタグのみに関心がある場合はa、 を使用できます[id=Classnumber100] > a

質問を読み直すと、興味のあるタグは の属性をh4共有しているようです。その場合、クラスセレクターを使用できます。つまり、classstudentheading

doc.select(".studentheading > a")
于 2012-09-15T19:11:40.947 に答える
1

select メソッドは html タグ (ここでは h4 と a) を検索し、指定された場合は次に属性を検索します。この状況での select の使用について詳しく説明されているので、jsoup サイトにアクセスしましたか。

例えば

// code not tested
Elements listo = doc.select("h4[id=Classnumber100]").select("a");

String text = listo.text(); // for  "22. Greg"
String path = listo.attr("href"); // for  "/grade8/greg"

.

于 2012-09-15T19:07:15.660 に答える