代码之家  ›  专栏  ›  技术社区  ›  Snowcrash

NoMethodError:#<Nokogiri::XML::元素的未定义方法“gsub”

  •  0
  • Snowcrash  · 技术社区  · 9 年前

    我在窥探,这张照片给我带来了一些麻烦。例如。

    [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 回复  |  直到 9 年前
        1
  •  2
  •   tadman    9 年前

    你不能逃避Nokogiri XML元素,它是一个复杂的Ruby对象,URI逃避者不知道如何使用。您可以对其上的某个字符串属性进行转义。

    例如:

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