jsoup - 找到元素并将其与前一个元素一起删除

时间:2015-05-30 09:22:21

标签: android html jsoup

我试图从Android中的股票市场历史价格表中提取一些数据。该表有时包含我需要删除的行,因此要有一个干净的表。在下面的片段中,行位于第三个tr中。我发现了一种使用

去除红利的细胞的方法
html = document.select("td[class=\"yfnc_tabledata1\"][align=\"center\"]");
            html.remove();

但我不确定如何删除日期(2015年5月4日)的td。有任何想法吗?然后我按班级来获取元素" yfnc_tabledata1"并通过它们找到我需要的数据。



<tr>
  <td class="yfnc_tabledata1" nowrap align="right">May 5, 2015</td>
  <td class="yfnc_tabledata1" align="right">28.69</td>
  <td class="yfnc_tabledata1" align="right">28.96</td>
  <td class="yfnc_tabledata1" align="right">27.64</td>
  <td class="yfnc_tabledata1" align="right">27.71</td>
  <td class="yfnc_tabledata1" align="right">4,595,800</td>
  <td class="yfnc_tabledata1" align="right">27.58</td>
</tr>
<tr>
  <td class="yfnc_tabledata1" nowrap align="right">May 4, 2015</td>
  <td class="yfnc_tabledata1" align="right">28.67</td>
  <td class="yfnc_tabledata1" align="right">28.80</td>
  <td class="yfnc_tabledata1" align="right">28.35</td>
  <td class="yfnc_tabledata1" align="right">28.61</td>
  <td class="yfnc_tabledata1" align="right">33,537,800</td>
  <td class="yfnc_tabledata1" align="right">28.47</td>
</tr>
<tr>
  <td class="yfnc_tabledata1" nowrap align="right">May 4, 2015</td>
  <td class="yfnc_tabledata1" align="center" colspan="6">0.26 Dividend</td>
</tr>
<tr>
  <td class="yfnc_tabledata1" nowrap align="right">May 1, 2015</td>
  <td class="yfnc_tabledata1" align="right">28.68</td>
  <td class="yfnc_tabledata1" align="right">28.68</td>
  <td class="yfnc_tabledata1" align="right">28.68</td>
  <td class="yfnc_tabledata1" align="right">28.68</td>
  <td class="yfnc_tabledata1" align="right">0</td>
  <td class="yfnc_tabledata1" align="right">28.28</td>
</tr>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

我自己没有尝试过,但你可以尝试这样做:

document.select("td[class=\"yfnc_tabledata1\"][align=\"center\"]").parents();

通过这种方式你可以得到封闭的&#34; tr&#34;你可以删除整行。

答案 1 :(得分:1)

好的,已经找到了解决方案。

for( Element element : document.select("td[class=\"yfnc_tabledata1\"][align=\"center\"]")) {
                el = element.parent();
                el.remove();
            }

通过这种方式,我找到了带有红利的td,我得到了它的父母并将其全部删除。似乎工作。