【问题标题】:Accessing HTML attributes in Nokogiri在 Nokogiri 中访问 HTML 属性
【发布时间】:2011-11-23 04:51:04
【问题描述】:

这是我正在使用的代码:

location = block.xpath("*/img")
puts location

这个输出:

<img src="/images/p.gif" height="1" width="0">

我想要做的是从 html 中获取 width 属性,但我似乎无法让它发挥作用。我想我需要将['width'] 放在我的代码中的某个位置,并且我已经尝试在网上按照各种示例进行操作,但无法使其正常工作。

【问题讨论】:

    标签: html ruby nokogiri


    【解决方案1】:

    看看这个XPath Tutorial 中的xpath 语法。

    尝试block.at_xpath("*/img")["width"],如果只有一个元素,请尝试*/img/@width

    【讨论】:

    • 我猜你的意思是*/img/@width
    • @Micheal,是的,这个小小的编辑效果很好。我认为他在第一个例子中也有一个额外的括号。
    • block.xpath 返回元素的 NodeSet。您希望 block.at_xpath 返回单个元素。另外,请注意,使用 */img/@width 会为您提供 Attribute 对象,但您想在其中放置 .text.value.content 以将属性的值作为字符串输出。
    【解决方案2】:

    CSS 选择器往往更容易阅读:

    puts block.at('img')[:height]
    

    【讨论】:

    • block.at_css('img')[:height] 或只是block.at('img')[:height]
    • 是的!我不记得那个方法叫什么了。帖子已更新。
    猜你喜欢
    • 2011-02-23
    • 2012-11-10
    • 2021-06-10
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多