我正在尝试访问表中包含的数据,该表本身包含在class ='L1'
的表中。
所以基本上我的html结构是这样的:
<table class="L1">
<table>
<tr></tr>
<tr>
<td></td>
<td><a href="">data</a></td>
</tr>
<tr>
<td></td>
<td><a href="">data</a></td>
</tr>
...ect...ect
</table>
</table>
我需要捕获<a> </a>
中包含的所有<tr> </tr>
中包含的数据,但只能从表的第二个<tr>
开始。
到目前为止,我提出了这个问题:
html_body = Nokogiri::HTML(body)
links = html_body.css('.L1').xpath("//table/tbody/tr/td[2]/a[1]")
但在我看来,这并不表示我想在第二个<tr>
(第二个<tr>
包括在内之后才开始这个事实?
什么是正确的代码来做到这一点?
答案 0 :(得分:0)
您可以使用position()选择所需的后续元素。
html_body = Nokogiri::HTML(body)
links = html_body.css('.L1').xpath("//table/tbody/tr[position()>1]/td[2]/a[1]")
正如对该SO答案的评论所述,请记住XPath从1开始计算,因此>1
会跳过第一个tr
。