Jsoupで個別のテキストノードを抽出するにはどうすればいいですか? 質問する

Jsoupで個別のテキストノードを抽出するにはどうすればいいですか? 質問する

次のような要素があります:

<td> TextA <br/> TextB </td>

TextA と TextB を個別に抽出するにはどうすればよいですか?

ベストアンサー1

いくつかの方法があります。それは、ドキュメント自体と、与えられたHTMLマークアップが一貫しているかどうかによって異なります。この特定の例では、次tdのようにして の子ノードを取得できます。Element#childNodes()そして、各ノードを個別にテストして、TextNodeか否か。

例えば

Element td = getItSomehow();

for (Node child : td.childNodes()) {
    if (child instanceof TextNode) {
        System.out.println(((TextNode) child).text());
    }
}

その結果

テキストA
 テキストB

Element#textNodes()Jsoup が、子要素を取得するために が行うのと同じように、子テキスト ノードを取得するために または何かを提供してくれたらよいと思います(例では、要素Element#children()が返されます)。<br />

おすすめ記事