JSoup - 通过标签/数组递增

时间:2013-07-29 09:38:10

标签: java jsoup

使用JSoup框架,我试图遍历下面的div并将每个<p>标签中的文本提取到一个数组中。由于<div><p>的列表无限长,因此do / while循环或for循环将是获取<p>中信息的首选方法。

我不知道如何遍历下面的<div>标记,因为我不确定如何跟踪<p><div>的哪些 <div class="happy-div"> // want everything within this div to be in one array element <p>good text here.</p> <p>More good Text here.</p> <p>Some good stuff here.</p> </div> <div class="sad-div"> // want everything within this div to be in a separate array element <p>Some unhappy text here.</p> <p>More unhappy Text here.</p> <p>Some unhappy stuff here.</p> </div> <div class="depressed-div"> // everything within this div to be in a separate array element <p>Some melancholy text here.</p> <p>More melancholy Text here.</p> <p>Some melancholy stuff here.</p> </div> .... repeats hundreds of times 标记存储到数组中。如果答案是明显的答案,请道歉,因为我对Java和编程有点新手。

非常感谢你的帮助。如果我能添加任何可以提供帮助的内容,请告诉我。

示例HTML(假设重复数百次):

String[] arrayOfP;
for (int i = 0; i < numberOfDivs; i++)
{
    arrayOfP[i] = doc.select("All of the text in the <p> tags within the div we've incremented to")
    System.out.println(arrayOfP[i])
}

伪代码:

arrayofP[1] Some good text here. More good Text Here. Some good stuff here.
arrayofP[2] Some unhappy text here. More unhappy Text Here. Some unhappy stuff here.
arrayofP[3] Some melancholy text here. More melancholy Text Here. Some melancholy stuff here.
....

预期结果:

当打印String数组元素值的内容时,我希望看到这个:

{{1}}

1 个答案:

答案 0 :(得分:1)

您可以使用HashMap存储每个P的{​​{1}}元素列表。 地图的每个键都可以是您可以提供给div的ID,值是div元素的列表。

例如:

P