使用xpath查找列的顶部

时间:2011-04-14 12:14:14

标签: xpath nokogiri

假设HTML表格如下:

<tr> <td>     </td> <th> black </th> <th> white </th> </tr>
<tr> <th> 1st </th> <td> stuff </td> <td> stuff </td> </tr>
<tr> <th> 2nd </th> <td> earth </td> <td> stuff </td> </tr>
<tr> <th> 3rd </th> <td> stuff </td> <td> bingo </td> </tr>

另请注意,我发现表格格式为&#34; bingo&#34;使用XPath,也许使用:

@cell = @table.xpath('.//td[contains(text(), "bingo")]')

(那就是你如何与Nokogiri一起做。)

那么采用@cell并使用它来查找包含此单元格的列顶部的标头的规范方法是什么?

那就是,转向&#34; bingo&#34;的规范方式是什么?进入&#34;白色&#34;和&#34;地球&#34;进入&#34;黑&#34;?

1 个答案:

答案 0 :(得分:4)

对于标准化表,来自任何tdth“单元格”的相对XPath表达式:

preceding::*[
   self::td|self::th
][
   position() mod count(../*) = 0
][
   last()
]