【发布时间】:2015-05-17 08:33:14
【问题描述】:
我正在尝试使用以下标记解析表格。
<table>
<tr class="athlete">
<td colspan="2" class="name">Alex</td>
</tr>
<tr class="run">
<td>5.00</td>
<td>10.00</td>
</tr>
<tr class="run">
<td>5.20</td>
<td>10.50</td>
</tr>
<tr class="end"></tr>
<tr class="athlete">
<td colspan="2" class="name">John</td>
</tr>
<tr class="run">
<td>5.00</td>
<td>10.00</td>
</tr>
<tr class="end"></tr>
</table>
我需要遍历每个 .athlete 表行并获取下面的每个同级 .run 表行,直到到达 .end 行。然后为下一位运动员重复,依此类推。一些 .athlete 行有两个 .run 行,另一些有一个。
这是我目前所拥有的。我遍历运动员:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://myurl.com"
doc = Nokogiri::HTML(open(url))
doc.css(".athlete").each do |athlete|
puts athlete.at_css("name").text
# Loop through the sibling .run rows until I reach the .end row
# output the value of the td’s in the .run row
end
我不知道如何获取每个同级的 .run 行,并在 .end 行处停止。我觉得如果表格更好地形成会更容易,但不幸的是我无法控制标记。任何帮助将不胜感激!
【问题讨论】: