我有一份文件如下:

<div id="block">
    <a href="http://google.com">link</a>
</div>

我无法让Nokogiri得到href属性的值.我想将地址作为字符串存储在Ruby变量中.

推荐答案

html = <<HTML
  <div id="block">
    <a href="http://google.com">link</a>
  </div>
HTML
doc = Nokogiri::HTML(html)
doc.xpath('//div/a/@href')
#=> [#<Nokogiri::XML::Attr:0x80887798 name="href" value="http://google.com">]

或者,如果你想更具体地描述这个部门:

>> doc.xpath('//div[@id="block"]/a/@href')
=> [#<Nokogiri::XML::Attr:0x80887798 name="href" value="http://google.com">]
>> doc.xpath('//div[@id="block"]/a/@href').first.value
=> "http://google.com"

Ruby-on-rails相关问答推荐

如何测试自定义路由?

Rails Routing:在具有自己的路由的名称空间下组织路由

如何控制或定制S为模型使用的命名路由Rail()?

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

如何在不触发每次编译的情况下运行`bin/rails测试`?

API Rails 路由,令牌是路由的一部分

Rails - 如何从 http://example.com 重定向到 https://www.example.com

Time.zone.now.to_date 是否等同于 Date.today?

如何获取 Ruby on Rails 生成的表单元素 id 以供 JavaScript 参考?

如何在rails中发回js.haml

Rails如何对列求和?

Rails:从视图内渲染视图(不是部分视图)

Rails:将所有未知路由重定向到 root_url

过滤器在渲染之前但在控制器之后执行?

如何将 ActionMailer default_url_options 的 :host 动态设置为请求的主机名?

Ruby on Rails i18n - 想要在模型中翻译自定义消息

如何在两个字段上对 ruby​​/rails 进行排序?

# 轨道中的 TODO

Ruby on Rails:Cucumber:我如何获取单个功能?

在 Rails 中显示主机名和数据库名