2017-07-17 121 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