1

スタックオーバーフローについて調べたところ、次の投稿が見つかりました。

https://stackoverflow.com/questions/7864433/how-to-parse-the-cells-of-the-3rd-column-of-a-tablehttps://stackoverflow.com/questions/7864433/how-to-表の 3 列目のセルの解析

しかし、私はまだ少し混乱しています。

私が持っているのは、<tbody>異なる日付のタグ内にこれらのいくつかを含むhtmlテーブルです:

            <tr>
                <td>
                    <nobr>Fri</nobr>
                </td>
                <td>
                    <nobr>Sep 20</nobr>
                </td>
                <td>
                    <nobr>4:00 PM</nobr>
                </td>
                <td>
                    Practice                </td>
            </tr>

テーブルのIDは「gymschedule」です。

これまでのところ、JSoup を使用してテーブルを取得し、JSoup を使用して Web ビューに表示できます。

必要なのは、2 番目のテキストを 2 番目に取得することです<nobr>。また、テーブル内の他のすべてのタグ<td>グループに対してもこれを<tr>行います。

4

1 に答える 1

2

元のソースがどのように見えるかは完全にはわかりませんが、これでうまくいくはずです。

CSS セレクターを使用してドキュメント内の特定のタグを選択し、疑似セレクターを使用してタグが持つべきプロパティを指定できます。

<tr>一連の多数のタグのうち最初のタグのみを選択する場合は、tr:eq(0)セレクターを使用します。

あなたの場合、次のような結果になります:

    doc = Jsoup.parse(html, "", Parser.xmlParser());
    Elements elements = doc.select("tr td:eq(1) nobr");
    for (Element e : elements) {
        System.out.println(e.text()); 
    }

どちらが印刷されますか

Sep 20

あなたの完全なソースがどのように見えるかわからないので、デフォルトの HTML パーサーを使用できるかもしれませんが、それはJsoup.parse(html);あなたが提供したスニペットでは機能しません。

他の疑似セレクターの例は次のとおりです。

:lt(0) //Less than
:gt(0) //Greater than

セレクター構文の使用について読むことをお勧めします。

セレクター構文を使用して要素を検索する

于 2013-10-07T21:33:36.253 に答える