我按顺序选择一个特定的孩子有问题,例如看这个HTML代码:
<html>
<body>
<div class="partA">
1
</div>
<div class="partB">
2
</div>
<div class="partC">
3
</div>
<div class="partB">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div class = "sublassB"> 5 </div>
</div>
<div class="partD">
5
</div>
</body>
</html>
我想使用jsoup,例如获取第四个div(body / div [4] / div [5]),然后获取第四个div的类名。
我用过:eq(n)但它并没有给我带来不良后果。还有其他方法吗? 提前致谢 :) 。
答案 0 :(得分:1)
获取带有classname的元素总是首选,但如果你想通过索引编号,你可以使用下面的代码,你必须知道你想要获取的确切索引
Document doc = Jsoup.connect("http://www.codeinventory.com").get();
Elements body= doc.select("body").get(0);
Elements div = body.select("div").get(3).select("div").get(4); // here just append select("div").get(n) fi you know exact nesting and div number you want
System.out.println(div.attr("class")) // this will give you classname
答案 1 :(得分:1)
以下是如何将路径body/div[4]/div[5]
写为CSS选择器:
body > div:nth-child(4) > div:nth-child(5)
如果您使用不包含div或有时其他标记的长路径,只需动态生成一个字符串并将其传递给Jsoup。