14
私はこのような要素を持っています:Jsoupで別のテキストノードを抽出するには?
<td> TextA <br/> TextB </td>
どうやってTextAとTextBを別々に取り出すことができますか?
私はこのような要素を持っています:Jsoupで別のテキストノードを抽出するには?
<td> TextA <br/> TextB </td>
どうやってTextAとTextBを別々に取り出すことができますか?
いくつかの方法。これは実際には文書自体と、与えられたHTMLマークアップが一貫しているかどうかに依存します。この特定の例では、td
の子ノードをElement#childNodes()
で取得し、TextNode
であればすべてのノードを個別にテストできます。
など。私はJsoupがElement#children()
が戻っていた子要素を(得るために行うようような子テキストノードを取得するためにElement#textNodes()
か何かを提供されている場合、それは素敵なことだと思い
TextA TextB
になり
Element td = getItSomehow();
for (Node child : td.childNodes()) {
if (child instanceof TextNode) {
System.out.println(((TextNode) child).text());
}
}
あなたの例では<br />
要素)。
私は1.6.2のElement#textNodes()を実装しましたが、この提案に感謝します。 https://github.com/jhy/jsoup/commit/7b9f17760049161b775fd23b15653961620e259d –
@JonathanHedleyあなたは命の恩人です!私はあなたの努力のために十分にあなたに感謝することはできません。あなたのコードとコメントは完璧で、GoogleとStackOverflowを何時間も節約できました。 – stackular