Html Jsoup逐个遍历

Html Jsoup逐个遍历,html,jsoup,Html,Jsoup,我必须逐一迭代每个div的html内容 <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>&l

我必须逐一迭代每个div的html内容

<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>
它获取数据,但不按顺序

我只想获取一个类别,然后是它的子类别。还请注意,某些类别没有子类别


请向任何人建议正确的方法。谢谢。

您可以使用以下语法:

[attr^=value]: for elements with attributes that start with value
[attr$=value]: end with value
[attr*=value]: contain the value
在您的情况下:“category”和“sub category”都包含子字符串“category”并以“category”结尾,因此您可以使用:

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

element.select(“div.category,div.sub-category”)
是否为您执行此技巧?您将获得每个div,包括category和sub-category类。您好,是category的子类吗?不,每个都是不同的,但都是一个节点的子类。感谢厄立特里亚人的回复。上面的例子只是为了解释我的问题。我工作的实际网站没有匹配的父节点和子节点的class/id名称。如果我在.select中使用了类名的某些部分(我们示例的选项3),它可能会获取其他节点内容,这些内容具有类似的类名,而我的输出不需要这些内容。
.select("div[class*=category]") or
.select("div[class$=category]")