Jsoup总是返回元素第一次出现的索引

时间:2015-07-29 22:25:36

标签: java dom jsoup

我正在使用jsoup解析项目中的以下HTML代码段。

<table>
    <tbody>
        <tr>
            <td class="label">Car</td>
            <td class="default"></td>
            <td class="label">Car</td>
        </tr>
    <tbody>
<table>

但是,当我使用下面的代码返回两个“car”元素的索引时,它总是返回0.

Document doc = Jsoup.parse(new File("html.txt"), null);
Elements elements = doc.select("td.label");
for(Element element : elements) {
    System.out.println(element.elementSiblingIndex() + " " + element.text());
}

1 个答案:

答案 0 :(得分:3)

您收到此输出是因为jsoup这两个Element等于:

<td class="label">Car</td>
<td class="label">Car</td>

然后它返回他找到的第一个索引。尝试将Ids设置为元素:

<td id="car1" class="label">Car</td>
<td class="default"></td>
<td id="car2" class="label">Car</td>

您将获得所需的输出:

0 Car
2 Car

您还可以设置不同的类名或文本值,也可以使用。例如:

<td class="label">Car</td>
<td class="default"></td>
<td class="label">Bike</td>

0 Car
2 Bike