2017-07-17 64 views
0

我必須逐一瀏覽每個div的html內容。Jsoup逐個遍歷

<div class="category">  <a href="some url">1</a> </div> 
<div class="category">  <a href="some url">2</a> </div> 
<div class="sub-category"> <ul><li></li>....</ul>  </div> 
<div class="category">  <a href="some url">4</a> </div> 
<div class="sub-category"> <ul><li></li>....</ul>  </div> 
<div class="category">  <a href="some url">6</a> </div> 

我已經試過

element.select("div.category") 
element.select("div.sub-category") 

它獲取的數據,但沒有先後順序。

我只想獲取一個類別,然後是它的子類別。 另請注意,某些類別不具有子類別。 請建議任何人,正確的方法來做到這一點。謝謝。

+0

是否'element.select(「div.category,div.sub-category」)'爲你做詭計?你會得到每一個div,包括類別和子類別。 –

+0

嗨,是子類別的子類嗎? –

+0

沒有每個都是不同的,但都是一個節點的孩子說: – mitu1234

回答

0

您可以使用這些語法:

[attr^=value]: for elements with attributes that start with value 
[attr$=value]: end with value 
[attr*=value]: contain the value 

你的情況:「類別」 &「子類別」都包含字符串「類別」,並以「類」結尾的,因此你可以使用:

.select("div[class*=category]") or 
.select("div[class$=category]") 
+0

感謝厄立特里亞,爲您的答覆。上面的例子只是爲了解釋我的問題。我工作的實際網站沒有與父節點和子節點匹配的類/標識名稱。如果我在.select(例子的選項3)中使用類名稱的某些部分,它可能會獲取其他節點內容,這些節點內容具有類似的類名,這對我的輸出不是必需的。 – mitu1234