回答
Element.children()僅返回直接子對象。既然你把他們綁在一棵樹上,他們也有孩子。
如果您需要在不底層樹狀結構的直接子元素,那麼你需要創建它們如下
public static void main(String... args) {
Document document = Jsoup
.parse("<div><ul><li>11</li><li>22</li></ul><p>ppp<span>sp</span</p></div>");
Element div = document.select("div").first();
Elements divChildren = div.children();
Elements detachedDivChildren = new Elements();
for (Element elem : divChildren) {
Element detachedChild = new Element(Tag.valueOf(elem.tagName()),
elem.baseUri(), elem.attributes().clone());
detachedDivChildren.add(detachedChild);
}
System.out.println(divChildren.size());
for (Element elem : divChildren) {
System.out.println(elem.tagName());
}
System.out.println("\ndivChildren content: \n" + divChildren);
System.out.println("\ndetachedDivChildren content: \n"
+ detachedDivChildren);
}
輸出
2
ul
p
divChildren content:
<ul>
<li>11</li>
<li>22</li>
</ul>
<p>ppp<span>sp</span></p>
detachedDivChildren content:
<ul></ul>
<p></p>
在循環內部,它也可以像這樣做得更乾淨。 (Element elem:divChildren){ elem = elem.clone(); elem.empty(); detachedDivChildren.add(detachedChild); } – umar
你可以隨時使用ELEMENT.child(索引)和索引,你可以選擇你想要的孩子。
謝謝。當你知道你在尋找哪個孩子時很有用。在我正在執行的算法中,我不知道。 – user1777220
你不能只給他們和preifned索引例如在類中,並使用該索引來獲取它們? –
生活應該比它容易。返回元素的第一級子元素幾乎是所有解析器支持的非常基本的方法。索引編制的問題是,我不知道ELEMENT有多少直接孩子。另外,似乎索引是從葉子到父母完成的,並且很難使用它們。 – user1777220
在這裏你可以得到第一級子的價值
Element addDetails = doc.select("div.container > div.main-content > div.clearfix > div.col_7.post-info > ul.no-bullet").first();
Elements divChildren = addDetails.children();
for (Element elem : divChildren) {
System.out.println(elem.text());
}
這應該給你想要的p的直接後代列表的arent節點:
Elements firstLevelChildElements = doc.select(parent-tag > *);
,或者您也可以嘗試檢索父元素,通過child(int index)
獲得第一個子節點,然後嘗試通過siblingElements()
檢索這個孩子的兄弟姐妹。
這會給你一個不包括使用過的孩子的一級孩子的列表,但是你必須從外部添加孩子。
Elements firstLevelChildElements = doc.child(0).siblingElements();
- 1. jsoup:如何獲得第一個元素?
- 2. jsoup獲得div元素的類
- 3. 如何獲得一個元組元素
- 4. 如何在元素子元素中單擊div外部元素父級JQuery
- 5. 在XQuery中獲取元素子元素
- 6. Jsoup,從元素中移除元素
- 7. Jsoup - 如何在元素中選擇元素
- 8. 如何使用Jsoup在Android中獲取元素的一部分
- 9. 如何通過jsoup獲取元素對?
- 10. 如何在JS中獲取元素的子元素的類?
- 11. 在JSoup中按類獲取元素
- 12. 如何在jQuery UI中獲取拖動元素的子元素
- 13. 如何在JavaScript中獲取此子元素的html元素?
- 14. 如何獲得第二個子元素?
- 15. 中東元素獲得元素
- 16. 如何獲得LXML元素
- 17. 如何獲得前元素
- 18. 如何獲得元素nightwatchjs
- 19. 如何獲得元素
- 20. 獲得的一個元素
- 21. 獲得元素
- 22. 獲取子元素在XML的另一個子元素
- 23. 如何在jQuery中獲取父元素時知道子元素?
- 24. 如何在JS中獲得相同級別的元素值?
- 25. 如何使用D3嵌套在另一個SVG元素(父級)中的SVG(子元素)元素的引用?
- 26. 如何獲得webdriver中元素的父元素
- 27. 如何獲得矩陣中選定元素周圍的元素
- 28. 如何獲得XML的父元素的所有子元素在C#
- 29. 如何獲得一個元素索引的一套固定的元素在Javascript
- 30. Appium + WD(的NodeJS)獲得同級元素
'Element.children()'返回直接的孩子,不是嗎?如果您有疑問,請嘗試'Element.children()。size()'。 – Vitaly
我試過了。它返回所有兒童(兒童和兒童)。 – user1777220
你好嗎? – acdcjunior