2011-08-23 15 views

Respuesta

24

Varias maneras. Eso realmente depende del documento en sí y de si el marcado HTML dado es consistente o no. En este ejemplo particular, puede obtener los nodos secundarios td en Element#childNodes() y luego probar cada nodo individualmente si es TextNode o no.

E.g.

Element td = getItSomehow(); 

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

que se traduce en

 
TextA 
TextB 

creo que sería bueno si Jsoup ofreció un Element#textNodes() o algo para obtener los nodos de texto niño como lo Element#children() hace para obtener los elementos secundarios (que han regresado el elemento <br /> en su ejemplo).

+15

Implementé Element # textNodes() para 1.6.2, gracias por la sugerencia. https://github.com/jhy/jsoup/commit/7b9f17760049161b775fd23b15653961620e259d –

+1

@JonathanHedley ¡Eres un salvavidas! No puedo agradecerle lo suficiente por su arduo trabajo. Tu código y tus comentarios son perfectos y me han ahorrado horas de Google y StackOverflow. – stackular

Cuestiones relacionadas