2011-08-12 5 views
18

tüm unsurları yineleme ama böyle seçerseniz şeydir, seçmek ve ben jsoup üzerinden bir url bağlanmak ve tüm içeriğini alacak

doc.select("body") 

onun tek eleman dönen ama almak istiyorum Jsoup tüm unsurları sayfasında ve onlara örneğin teker teker yineleme,

<html> 
<head><title>Test</title></head> 
<body> 
<p>Hello All</p> 
<a href="test.html">Second Page</a> 
<div>Test</div> 
</body> 
</html> 

ben tek bir satır gibi sonucu alıyorum vücudu kullanarak seçerseniz,

Test Hello All Second Page Test 

Onun yerine tüm öğeleri seçin ve tek tek yineleme ve benzeri sonuçlar üretmek istiyorum,

Test 
Hello All 
Second Page 
Test 

o jsoup kullanarak mümkün olacak mı?

sayesinde
Karthik

cevap

47

Hepiniz seçebilirsiniz * seçiciyi kullanarak belgenin elemanları ve daha sonra Element#ownText() kullanarak ayrı ayrı her birinin metnini alın.

Elements elements = document.body().select("*"); 

for (Element element : elements) { 
    System.out.println(element.ownText()); 
} 
+1

yok bu da aynı çıktıyı, bir fikrin üretiyor? – Karthik

+1

Ardından, sorunuzda gösterdiğiniz gibi, doğrudan vücudun çocukları değildir. Cevabı güncelleyeceğim. – BalusC

+0

Teşekkürler dost, bir çekicilik gibi çalışır. – Karthik

0

Sen ifadesi //text()

Test xml ile ifadesidir XPath

ihtiva XPath veya herhangi kitaplığını kullanabilirsiniz here

1

Jsoup kütüphanesi kullanılarak belgenin gövdesindeki tüm öğelerin tümünü almak için.

doc.body().children().select("*");

belgeler vücut elemanlarının elemanların sadece birinci seviyede almak için.

doc.body().children();

+0

Bu, diğer cevaplardan hemen belli olmayan önemli bir ayrımdır. Teşekkürler. Gövde etiketindeki tüm unsurların düz bir listesinin aksine (birinci örnek), belge gövdesinin birinci düzey öğelerini ve * çocuklarını (ikinci örnek) almak. – Murrah

İlgili konular