得到标记与数字顺序nokogiri红宝石

时间:2014-07-03 10:04:03

标签: html ruby tags nokogiri

我有这个HTML:

<div class="blah blah">
   <h4> 1 </h4>
   <h4> 2 </h4>
   <h5> 3 </h4>
</div>

如何通过数字顺序获取h4标签的内部文本。例如:当数字顺序为2时,我有文本2

谢谢!

3 个答案:

答案 0 :(得分:1)

使用简单的css选择器:

page.search('h4:nth-child(2)').first.text

如果你想要更灵活的解决方案,你可以简单地选择你感兴趣的div类的所有孩子:

page.search('div.blah > h4').find { |node| predicate?(node) } #your condition goes in the block.

我个人会坚持使用css选择器,因为它更干净。

答案 1 :(得分:1)

require 'nokogiri'

html_string = '<div class="blah blah"><h4> 1 </h4><h4> 2 </h4><h5> 3 </h4></div>'

doc = Nokogiri::HTML(html_string)

puts doc.css('.blah h4').to_a[1].text

答案 2 :(得分:0)

.blah h4:nth-child(2){
color: #666666;
}

如果你的意思是用CSS定位,那就行了。

你需要做什么?

您始终可以在要定位的ID上添加ID,然后按ID定位。