Java 如何使用jsoup获取特定的div
我在按顺序选择特定子项时遇到问题,例如,查看以下html代码:Java 如何使用jsoup获取特定的div,java,html,jsoup,Java,Html,Jsoup,我在按顺序选择特定子项时遇到问题,例如,查看以下html代码: <html> <body> <div class="partA"> 1 </div> <div class="partB"> 2 </div> <div class="partC"> 3 &l
<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>
1.
2.
3.
1.
2.
3.
4.
5.
5.
我想使用jsoup,例如获取第四个div(body/div[4]/div[5]),然后获取第四个div的类名
我使用了:eq(n),但它没有给出正确的结果。还有别的办法吗?
提前感谢:) 总是首选使用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
下面是如何将路径
body/div[4]/div[5]
编写为CSS选择器:
body > div:nth-child(4) > div:nth-child(5)
如果您使用的长路径不包含div或其他标记,只需动态生成一个字符串并将其传递给Jsoup。但是如果是这样的长路径/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[18]/div[2]更新的答案:)但在我的例子中,我需要一种动态的方法来解决这个问题,在一个长路径中,它不仅包含div,有时还包含其他标记。这里我发现了一个大问题,在这种情况下,您可以在方法中使用相同的代码并递归调用它;),若你们有动态需求,你们需要写那个逻辑,但逻辑的基础和我在回答中提到的一样。