Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用jsoup获取特定的div_Java_Html_Jsoup - Fatal编程技术网

Java 如何使用jsoup获取特定的div

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代码:

    <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,有时还包含其他标记。这里我发现了一个大问题,在这种情况下,您可以在方法中使用相同的代码并递归调用它;),若你们有动态需求,你们需要写那个逻辑,但逻辑的基础和我在回答中提到的一样。