使用Nokogiri保留换行符

alp*_*eus 2 ruby ruby-on-rails nokogiri

我在Rails 3应用程序中使用Nokogiri.它忽略了

<br/> 
Run Code Online (Sandbox Code Playgroud)

标签.我想用","替换这些标签,因为它们代表地址中的换行符.我该怎么做呢?我尝试了以下,似乎没有帮助:

  doc.inner_html.gsub!("<br/>", ", ")
Run Code Online (Sandbox Code Playgroud)

Phr*_*ogz 9

只是:

doc.css('br').each{ |br| br.replace ", " }
Run Code Online (Sandbox Code Playgroud)

看到行动:

require 'nokogiri'
doc = Nokogiri.HTML('<address>900 Magnolia Road<br/>Nederland, CO<br/>80466</address>')
puts doc.root
#=> <html><body><address>900 Magnolia Road<br>Nederland, CO<br>80466</address></body></html>

doc.css('br').each{ |br| br.replace ", " }
puts doc.root
#=> <html><body><address>900 Magnolia Road, Nederland, CO, 80466</address></body></html>
Run Code Online (Sandbox Code Playgroud)

如果你想要更加小心并且只更换<br>内部<address>标签(例如),那么:

doc.css('address > br').each{ |br| br.replace ", " }
Run Code Online (Sandbox Code Playgroud)