3

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

<br/> 

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

  doc.inner_html.gsub!("<br/>", ", ")
4

2 回答 2

10

简单地:

doc.css('br').each{ |br| br.replace ", " }

在行动中看到:

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>

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

doc.css('address > br').each{ |br| br.replace ", " }
于 2012-05-12T17:10:28.430 回答
0

像这样设置内容:

doc.inner_html = doc.inner_html.gsub("<br/>", ", ")  # using non-bang version
于 2012-05-12T04:46:41.950 回答