如何获取表单的选择选项文本和值?

时间:2012-01-24 23:38:33

标签: ruby nokogiri

我正在尝试使用Nokogiri来抓取表单的select元素。

例如:

<select id="colors" name="colors">
  <option class="" value="1">Blue</option>
  <option class="" value="2">Green</option>
</select>

我希望1 => 'Blue'2 => 'Green'

我尝试使用at_cssxpath,但根本没有运气。

我猜这将是正确的轨道:

doc.at_css("#colors option").each do |d|
  puts d
end

这只给了我一个:

value

我可以使用xpath获取页面上的每个option文本。

1 个答案:

答案 0 :(得分:5)

doc.css("#colors option").each do |d|
  puts d.attr("value")
  puts d.text
end

或作为对象:

doc.css("#colors option").each_with_object({}) do |e,o| 
  o[e.attr("value")] = e.text
end