我正在使用 Nokogiri 和 Ruby on Rails v2.3.8。
有没有办法在使用 Nokogiri 时避免漂亮的打印to_html
?
我读到to_xml
允许使用 来完成此操作to_xml(:indent => 0)
,但这不适用于to_html
.
现在我正在使用gsub
剥离换行符。Nokogiri 是否提供任何选项来做到这一点?
我正在使用 Nokogiri 和 Ruby on Rails v2.3.8。
有没有办法在使用 Nokogiri 时避免漂亮的打印to_html
?
我读到to_xml
允许使用 来完成此操作to_xml(:indent => 0)
,但这不适用于to_html
.
现在我正在使用gsub
剥离换行符。Nokogiri 是否提供任何选项来做到这一点?
我解决了这个使用.to_html(save_with: 0)
?
2.1.0 :001 > require 'nokogiri'
=> true
2.1.0 :002 > doc = Nokogiri::HTML.fragment('<ul><li><span>hello</span> boom!</li></ul>')
=> #<Nokogiri::HTML::DocumentFragment:0x4e4cbd2 name="#document-fragment" children=[#<Nokogiri::XML::Element:0x4e4c97a name="ul" children=[#<Nokogiri::XML::Element:0x4e4c47a name="li" children=[#<Nokogiri::XML::Element:0x4e4c240 name="span" children=[#<Nokogiri::XML::Text:0x4e4c0a6 "hello">]>, #<Nokogiri::XML::Text:0x4e4c86c " boom!">]>]>]>
2.1.0 :003 > doc.to_html
=> "<ul><li>\n<span>hello</span> boom!</li></ul>"
2.1.0 :004 > doc.to_html(save_with: 0)
=> "<ul><li><span>hello</span> boom!</li></ul>"
测试:nokogiri (1.6.5) + libxml2 2.7.6.dfsg-1ubuntu1 + ruby 2.1.0p0 (2013-12-25 修订版 44422) [i686-linux]
您可以使用Nokogiri::HTML.fragment()
而不仅仅是Nokogiri::HTML()
. 当您执行to_html
时,它不会添加换行符、DOCTYPE 标题或以任何方式使其“漂亮”。