NoMethodError:未定义的方法`gsub&#39;对于#<nokogiri :: xml :: element

时间:2015-09-18 16:28:06

标签: ruby nokogiri pry

=“”

我撬开这个图像给了我一些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'

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

1 个答案:

答案 0 :(得分:2)

你无法逃脱Nokogiri XML元素,它是一个复杂的Ruby对象,URI escaper不知道如何使用。你可以在它上面转义一个字符串的特定属性。

例如:

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