2011-08-23 2 views

risposta

24

Diversi modi. Questo dipende molto dal documento stesso e dal fatto che il dato markup HTML sia coerente o meno. In questo particolare esempio è possibile ottenere i nodi secondari dello td tramite Element#childNodes() e quindi verificare singolarmente ogni nodo se si tratta di un TextNode oppure no.

E.g.

Element td = getItSomehow(); 

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

che si traduce in

 
TextA 
TextB 

penso che sarebbe bello se Jsoup offerto un Element#textNodes() o qualcosa per ottenere i nodi di testo bambino come come Element#children() fa per ottenere gli elementi figlio (che sarebbe tornato l'elemento <br /> nell'esempio).

+15

Ho implementato l'elemento # textNodes() per 1.6.2, grazie per il suggerimento. https://github.com/jhy/jsoup/commit/7b9f17760049161b775fd23b15653961620e259d –

+1

@JonathanHedley Sei un risparmiatore di vita! Non posso ringraziarti abbastanza per il tuo duro lavoro. Il tuo codice e i tuoi commenti sono perfetti e mi hanno risparmiato ore di Google e StackOverflow. – stackular