2011-08-23 33 views

Trả lời

24

Một số cách. Điều đó thực sự phụ thuộc vào bản thân tài liệu và liệu việc đánh dấu HTML đã cho có nhất quán hay không. Trong ví dụ cụ thể này, bạn có thể nhận được các nút con của td bằng cách Element#childNodes() và sau đó kiểm tra từng nút riêng lẻ nếu đó là một TextNode hay không.

Ví dụ:

Element td = getItSomehow(); 

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

mà kết quả trong

 
TextA 
TextB 

Tôi nghĩ rằng nó sẽ được tốt đẹp nếu Jsoup cung cấp một Element#textNodes() hoặc một cái gì đó để có được các nút văn bản con giống như Element#children() làm để có được những yếu tố con (mà đã có thể trở lại thành phần <br /> trong ví dụ của bạn).

+15

Tôi đã triển khai Element # textNodes() cho 1.6.2, cảm ơn đề xuất. https://github.com/jhy/jsoup/commit/7b9f17760049161b775fd23b15653961620e259d –

+1

@JonathanHedley Bạn là người tiết kiệm cuộc sống! Tôi không thể cảm ơn đủ cho công việc khó khăn của bạn. Mã và nhận xét của bạn là hoàn hảo và đã tiết kiệm cho tôi số giờ của Google và StackOverflow. – stackular

Các vấn đề liên quan