如何使用Nokogiri基于select标签的内容获得select标签的“价值”

时间:2010-02-27 04:38:47

标签: ruby-on-rails ruby dom nokogiri mechanize

如何使用Nokogiri根据select标签的内容(即选项包装的文本)获取select标签的'value'属性的内容?

例如,给定以下HTML:

<select id="options" name="options">
  <option value="1">First Option - 4</option>
  <option value="2">Second Option - 5</option>
  <option value="3">Third Option - 6</option>
</select>

我希望能够指定一个字符串(例如'First Option')并返回'value'属性的内容(例如'1')。

我已经能够实现与此相反(根据select标签的'value'属性获取select标签的内容),但这不是我需要做的。

1 个答案:

答案 0 :(得分:1)

试试这个:

require 'nokogiri'
require 'open-uri'

url = "abc.html"
doc = Nokogiri::HTML(open(url))
doc.xpath('//select[@id="options"]/option[contains(., "First Option")]').each do | node|
  p node['value']
end