Html JSOUP选择结束标记后面的所有文本,直到指定标记

Html JSOUP选择结束标记后面的所有文本,直到指定标记,html,parsing,text,extract,jsoup,Html,Parsing,Text,Extract,Jsoup,我在一个表格中的许多表格行中都有这个html: ......... <tr class="greycellodd" align="right"> <td align="left"> <input type="checkbox" name="cashInvestment" value="100468057"/> </td> <td align="left">Cardcash </td> <td class="nobr"

我在一个表格中的许多表格行中都有这个html:

.........
<tr class="greycellodd" align="right">
<td align="left">
<input type="checkbox" name="cashInvestment" value="100468057"/>
</td>
<td align="left">Cardcash 
</td>
<td class="nobr">26 Aug 10</td>
<td class="nobr"> 1.00 
</td>
<td class="nobr"> 1.00 
</td>
<td align="right">£</td>
<td class="nobr">0.00 </td>
<td class="nobr">0.00 </td>
<td class="nobr">
<span class="changeupsmall">1.00 </span>
</td>
</tr>
<tr class="greycellodd">
<td align="right"/>
<td class="nobr" colspan="8">VISA</td>
</tr>
<tr class="greycelleven" align="right">
<td align="left">
<input type="checkbox" name="cashInvestment" value="100480214"/>
</td>
<td align="left">Santander
</td>
<td class="nobr">24 Sep 11</td>
<td class="nobr"> 1.00 
.......
要素2:

Santander
24 Sep 11
1.00 
.......
我试过:

 Elements Inve = mainFirst.select("input ~ *" );

我还需要获取复选框的值,我知道如何操作,但如果可能,最好同时操作:

Elements mainTables = doc.select("table.maintable");
for (Element subTable : mainTables){    
  Elements borrowInve = subTable.select("input[type=checkbox][name=cashInvestment]" );
  String attr = test.attr("value");
}
谢谢

编辑:通过检查大小来解决:

    Elements td = tableRows.get(i).select("td");

            Elements cash = tableRows.get(i).getElementsByAttributeValue("name", attrValue); // check if checkbox is present
            int theSize = cash.size();

            if(theSize ==1){ // this row is not a comment 

                String checkbox = "";
                Element cbox = td.select("input[type=checkbox]" ).first();
                checkbox = cbox.attr("value");
             else if (theSize ==0){ // this row contains a comment
                                  .............

我从未在JSOUP中做过任何事情,但快速查看一下文档,可能是以下内容:

Elements Inve = doc.select(".maintable tr td:not(:has(input))");

尽管如果您可以将类添加到您想要定位的元素中,可能会更容易。

还没有。因此,你的代码每行文本给我一个元素,基本上每tr一个元素,没有复选框,例如:1:Cardcash 2:26 Aug 10等等,它不会检测何时找到一个复选框,该复选框会触发每个新元素。如果你知道每个
tr
都有一个复选框,你可以这样做(记住,我从来没有做过JSOUP):
Elements treelements=doc.select(“.maintable tr”)
然后在
for(Element-treelement:treelements)
循环中,您将使用与我编写的代码类似的代码在当前行上进行选择,但将其缩小到当前tr,再加上第二次选择以查找复选框值。我最终解决了这个问题,并在您为我指出正确方向时将其标记为已回答(见编辑后的问题)
Elements mainTables = doc.select("table.maintable");
for (Element subTable : mainTables){    
  Elements borrowInve = subTable.select("input[type=checkbox][name=cashInvestment]" );
  String attr = test.attr("value");
}
    Elements td = tableRows.get(i).select("td");

            Elements cash = tableRows.get(i).getElementsByAttributeValue("name", attrValue); // check if checkbox is present
            int theSize = cash.size();

            if(theSize ==1){ // this row is not a comment 

                String checkbox = "";
                Element cbox = td.select("input[type=checkbox]" ).first();
                checkbox = cbox.attr("value");
             else if (theSize ==0){ // this row contains a comment
                                  .............
Elements Inve = doc.select(".maintable tr td:not(:has(input))");