如何使用jsoup获取特定的div

时间:2016-05-18 09:25:28

标签: java html jsoup

我按顺序选择一个特定的孩子有问题,例如看这个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)但它并没有给我带来不良后果。还有其他方法吗? 提前致谢 :) 。

2 个答案:

答案 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。