Gsub 就地不起作用



我有这个代码:

Firm.all.each do |firm|
    url = firm.site
    doc = Nokogiri::HTML(open(url))
    data = doc.css("##{firm.menu_id} a")
    data.each do |e|
      e.text.strip!
      e.text.gsub!(/[nt]*/,'')
      puts e.text
    end
end

字符串以与输入相同的格式显示(这意味着gsub!方法不会影响字符串)。我认为e.text可以是不可变的,但我想确保这一点。

text 方法每次都会返回一个新的字符串,可以使用object_id看到

e = Nokogiri::XML('<a>text</a>')
e.text.object_id == e.text.object_id # => false

如果要修改节点的文本,请设置以下内容:

e.at_css('a').content = "foo"
e.text # => "foo"

相关内容

  • 没有找到相关文章

最新更新