2011-08-23 14 views

Odpowiedz

24

Kilka sposobów. To naprawdę zależy od samego dokumentu i tego, czy dany znacznik HTML jest spójny, czy nie. W tym konkretnym przykładzie można uzyskać węzły podrzędne td przez Element#childNodes(), a następnie przetestować każdy węzeł osobno, jeśli jest to TextNode lub nie.

E.g.

Element td = getItSomehow(); 

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

co skutkuje

 
TextA 
TextB 

myślę, że byłoby miło, gdyby Jsoup oferowane Element#textNodes() lub coś dostać węzły tekstowe jak dziecko jak Element#children() robi, aby uzyskać elementy podrzędne (co powrócili element <br /> w twoim przykładzie).

+15

Zaimplementowałem Element # textNodes() dla wersji 1.6.2, dziękuję za sugestię. https://github.com/jhy/jsoup/commit/7b9f17760049161b775fd23b15653961620e259d –

+1

@ JonathanHedley Oszczędzasz życie! Nie mogę ci wystarczająco podziękować za twoją ciężką pracę. Twój kod i komentarze są idealne i pozwoliły mi zaoszczędzić godzin Google i StackOverflow. – stackular

Powiązane problemy