NoMethodError: undefined method `gsub' for #<Nokogiri::XML::Element

NoMethodError: undefined method `gsub' for #<Nokogiri::XML::Element

我很忙,这张照片给我在 Nokogiri 带来了一些麻烦。例如

[8] pry(main)> img
=> #(Element:0x3fe805871b94 {
name = "img",
attributes = [
#(Attr:0x3fe8058716d0 { name = "alt", value = "Alt text here" }),
#(Attr:0x3fe805870460 { name = "src", value = "/path/to/file/a.jpg" }),
#(Attr:0x3fe80587044c { name = "style", value = "width: 452px; height: 190px" })]
})
[9] pry(main)> URI.escape(img)
NoMethodError: undefined method `gsub' for #<Nokogiri::XML::Element:0x007fd00b0e3728>
from /Users/snowcrash/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/uri/rfc2396_parser.rb:304:in `escape'

知道为什么以及如何解决吗?

您无法转义 Nokogiri XML 元素,这是一个复杂的 Ruby 对象,URI 转义者不知道如何使用。您可以转义其上的特定属性,即字符串。

例如:

URI.escape(img.attr('src'))