如何从Ruby中的一行HTML中提取表单值

时间:2012-07-13 06:21:59

标签: ruby parsing

我想提取一些表单标签的值。我在运行时不知道这个值。

我发现了几个接近的线程,但它们都专注于HTML解析和抓取。

我已经拥有HTML源代码和表单字段的名称,我需要它的值。

示例:

<input type="hidden" name="currentRackU" id="currentRackU" value="11">

我可以使用正则表达式来获取&#39; id =&#34; currentRackU&#34;值=&#39;但我现在需要获得下一个字符,直到收尾报价。

3 个答案:

答案 0 :(得分:1)

与nokogiri的单行班怎么样?

require 'nokogiri'
s = '<input type="hidden" name="currentRackU" id="currentRackU" value="11">'
Nokogiri::XML.parse(s).root.attributes['id'].value # currentRackU

如果您没有安装nokogiri,则可能需要运行gem install nokogiri

答案 1 :(得分:0)

当涉及从HTML / XML文档中提取数据时,我通常使用gem nokogiri - 它可以很好地完成工作。

答案 2 :(得分:0)

虽然确实不一定要用正则表达式解析HTML / XML,但这里有些东西可以帮到你。它会扫描标记并返回属性及其值的哈希值:

html = '<input type="hidden" name="currentRackU" id="currentRackU" value="11">'
Hash[html.scan(/(\w+)="(.*?)"/)]
#=> {"type"=>"hidden", "name"=>"currentRackU", "id"=>"currentRackU", "value"=>"11"}