27

これは HTML 構造です。

ここに画像の説明を入力

Element link = doc.select("div.subtabs p").first();

それはうまくいかないようです。どうすればそれを選択できますpか?

4

6 に答える 6

26

class="subtabs" を持つ DIV は、実際にはp要素の親ではなく、 の兄弟ですp。を取得するpには、最初に id="content" を持つ親 DIV への参照を取得する必要があります。

Element link = doc.select("div#content > p").first();

さらに、>div#content の子を選択していることを示す記号が必要です。

親 > 子: 親から直接派生する子要素。たとえば、div.content > p は p 要素を検索します。and body > * body タグの直接の子を検索します

将来、JSOUP CSS セレクターに行き詰まった場合は、JSOUP セレクター構文クックブックを確認してください。いくつかの良い例と説明があります。

于 2012-05-22T04:51:47.430 に答える
4

div#content p. の子ではありません.subtabs

于 2012-05-22T04:53:29.677 に答える
1

Chrome SelectorGadgetは、jSoup の CSS セレクターをポイント アンド クリックで作成するのに非常に役立ちます。特定の分野をターゲットにしようとすると、開発時間を何時間も節約できました。

于 2015-12-14T13:32:30.233 に答える
1

Element link = doc.select("div.subtabs + p") 兄弟の直前にある要素を見つける

于 2017-09-19T08:57:07.080 に答える
0

これを試して:

Element link = doc.select("div.subtabs > p").first();
于 2019-06-04T08:26:38.147 に答える