Gsub 就地不工作
Gsub in-place not working
我有这个代码:
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!(/[\n\t]*/,'')
puts e.text
end
end
字符串以与输入相同的格式显示(这意味着 gsub!
方法不影响字符串)。我认为 e.text
可以是不可变的,但我想确保这一点。
text
方法returns每次一个新的String,使用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"
我有这个代码:
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!(/[\n\t]*/,'')
puts e.text
end
end
字符串以与输入相同的格式显示(这意味着 gsub!
方法不影响字符串)。我认为 e.text
可以是不可变的,但我想确保这一点。
text
方法returns每次一个新的String,使用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"