2011-08-23 14 views

答えて

24

いくつかの方法。これは実際には文書自体と、与えられた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 />要素)。

+15

私は1.6.2のElement#textNodes()を実装しましたが、この提案に感謝します。 https://github.com/jhy/jsoup/commit/7b9f17760049161b775fd23b15653961620e259d –

+1

@JonathanHedleyあなたは命の恩人です!私はあなたの努力のために十分にあなたに感謝することはできません。あなたのコードとコメントは完璧で、GoogleとStackOverflowを何時間も節約できました。 – stackular

関連する問題