我有这个代码:
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"