【问题标题】:jsoup - find element and remove it together with the previous elementjsoup - 查找元素并将其与前一个元素一起删除
【发布时间】:2015-05-30 17:44:48
【问题描述】:

我正在尝试从 Android 中的股市历史价格表中提取一些数据。该表有时包含我需要删除的行,以便有一个干净的表。在该行下方的 sn-p 中,位于第三个 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>

【问题讨论】:

    标签: android html jsoup


    【解决方案1】:

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

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

    这样你会得到封闭的“tr”,你可以删除整行。

    【讨论】:

      【解决方案2】:

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

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

      通过这种方式,我找到了带有股息的 td,我得到了它的父级并将其全部删除。似乎有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多