使用jsoup获取相同的div级别但不同的类名称

时间:2015-03-26 08:34:28

标签: html loops jsoup

我想从html获取数据

<div class="xyz">
    <div class="opq">
        <div class="one">One</div></div>
    <div class="rst">
        <div class="vwu">
            <div class="alpha"><a href="a">A</a></div></div></div>
    <div class="opq">
        <div class="one">Two</div> 
    <div class="rst">
        <div class="vwu">
            <div class="alpha"><a href="b">B</a></div></div></div>
    <div class="rst">
        <div class="vwu">
            <div class="alpha"><a href="c">C</a></div></div></div>
    <div class="opq">
        <div class="one">Three</div></div>
    <div class="rst">
        <div class="vwu">
            <div class="alpha"><a href="d">D</a></div></div></div>
    </div>
</div> 

我如何以新的格式获取数据,其中A是一个孩子,两个是B和C的父母,所以D是D的父母。当我尝试使用循环(元素)时我得到的全部零件。我很难在One - Two - Three之间获得元素。 “One”dan“Two”之间只有一个元素(A)。接下来,“一”和“二”之间的2个元素(B&amp; C)。在“三”之后,最后一个只有1个元素D. 我会表现出:

One :
> A
Two :
> B
> C
Three :
> D

我使用eq(0)来访问它们,但结果显示错误输出。

要做到这一点,我只是这样做:

Elements ht = dok.select("div.one");
Elements li = dok.select("div.alpha:eq(0)");

    for(Element el : ht   ){
      System.out.println(el.ownText()+" : "+li.get(i).text());
      i++;
      }

但结果是:

One :
> A
Two :
> B
Three :
> C

基于结果,不像我希望的那样。在“两个”和“三个”之间它实际上有2个元素,B和C.而最后的“三个”它必须具有D的元素。但是在这个结果中,元素D不能显示。 感谢您的任何建议

0 个答案:

没有答案