nokogiri 解析 tr 中的第一个 td,忽略特定 class

nokogiri parsing first td in tr ignoring specific class

我有以下html

<table>
    <tr>
      <th>value</th>
      <th>description</th>
    </tr>
    <tr>
      <td>OverallHealthScore</td>
      <td>

             Overall HealthScore.

      </td>
    </tr>
    <tr>
      <td class="deprecated">DESTAGED_TRACKS_PER_SEC</td>
      <td>

             The tracks per second saved into disks.

      </td>
    </tr>
</table>

有很多 tr,但这是两个场景的摘录 我只需要打印出 OverallHealthScore

table.css('tr').map do |row|
    puts row.css('td:not(.deprecated)').map(&:text)[0]
end

让我差不多到了那里,但在已弃用的项目上打印出 "description" td。我似乎无法弄清楚我需要做什么才能获得我需要的结果。

假设您想获取第一个未弃用的 td 值:

<table>
  <tr>
    <th>value</th>
    <th>description</th>
  </tr>
  <tr>
    <td>OverallHealthScore</td>
    <td>

      Overall HealthScore.

    </td>
  </tr>
  <tr>
    <td class="deprecated">DESTAGED_TRACKS_PER_SEC</td>
    <td>

      The tracks per second saved into disks.

    </td>
  </tr>
  <tr>
    <td>AvaiableAnother</td>
    <td>

      Another Available HealthScore.

    </td>
  </tr>
  <tr>
    <td class="deprecated">OTHER_DEPRE</td>
    <td>

      The tracks per second saved into disks.

    </td>
  </tr>
</table>

然后

puts table.css('td:first-child:not(.deprecated)').map(&:text)
# OverallHealthScore
# AvaiableAnother