Nokogiri:如何找到<select>的选定选项? [英] Nokogiri: how to find the selected option of &lt;select&gt;?

查看:43
本文介绍了Nokogiri:如何找到<select>的选定选项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要获取所选 HTML 选项的值:

I need to get a value of the selected HTML option:

<select  name="DisplayCurrency" id="DisplayCurrency" >
<option  value="GBP" >Pounds Sterling</option>
<option  value="EUR"  selected="selected" >Euros</option>
<option  value="CHF" >Swiss Francs</option>
<option  value="DKK" >Danish Krona</option>
<option  value="CSK" >Czech Krowns</option>
<option  value="HUF" >Hungarian Forints</option>
<option  value="PLN" >Polish Zloty</option>
</option>
</select>

我用 Nokogiri 尝试过这个,但它不起作用:

I tried this using Nokogiri, but it does not work:

page.search('//select[@id="DisplayCurrency"]/option[@selected=selected]').attr('value')

推荐答案

这对我有用,即使标记无效:

This works for me, even with the invalid markup:

require 'nokogiri'
doc = Nokogiri::XML <<ENDXML
  <select name="DisplayCurrency" id="DisplayCurrency" >
  <option value="GBP" >Pounds Sterling</option>
  <option value="EUR" selected="selected" >Euros</option>
  <option value="CHF" >Swiss Francs</option>
  <option value="DKK" >Danish Krona</option>
  <option value="CSK" >Czech Krowns</option>
  <option value="HUF" >Hungarian Forints</option>
  <option value="PLN" >Polish Zloty</option>
  </option>
  </select>
ENDXML

puts doc.css('#DisplayCurrency option[@selected="selected"]').attr('value')
#=> EUR

puts doc.at_xpath('//select[@id="DisplayCurrency"]/option[@selected="selected"]').attr('value')
#=> EUR

puts doc.at_xpath('//*[@id="DisplayCurrency"]/option[@selected="selected"]/@value').value
#=> EUR

p RUBY_VERSION, Nokogiri::VERSION
#=> "1.9.2"
#=> "1.4.4"

这篇关于Nokogiri:如何找到<select>的选定选项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆