Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.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总是返回元素第一次出现的索引_Java_Dom_Jsoup - Fatal编程技术网

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

Java Jsoup总是返回元素第一次出现的索引,java,dom,jsoup,Java,Dom,Jsoup,在我的项目中,我正在使用jsoup解析以下HTML片段 <table> <tbody> <tr> <td class="label">Car</td> <td class="default"></td> <td class="label">Car</td> </tr>

在我的项目中,我正在使用jsoup解析以下HTML片段

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

您获得此输出是因为对于
jsoup
这两个
元素
相等:

<td class="label">Car</td>
<td class="label">Car</td>
您还可以设置不同的类名或文本值,这样也可以正常工作。例如:

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

0 Car
2 Bike
汽车
自行车
0车
2辆自行车

如果我无法更改HTML内容,有什么方法可以做到吗?@rookiedev我能想到的最简单的方法是选择所有
td
s,对它们进行迭代,只对那些带有
标签的
类做出反应。类似于(除非我误解了什么)。是的@Pshemo,这很有效,但是你错过了选择器的力量。正如我提到的,这是我目前唯一能找到有效方法的方法。但是你是对的,如果有一些jsoup选择器或方法允许我们避免(i…)
,那么最好使用它。
<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