使用DIV包装DocumentFragment中的所有节点

时间:2015-06-05 17:45:23

标签: html ruby nokogiri

给出一个简单的DocumentFragment:

html = "<h1>Three's Company</h1><p>A love triangle.</p>"
doc = Nokogiri::HTML::DocumentFragment.parse html

是否有一种优雅的方式来包装DocumentFragment与DIV一起保存的所有东西?请注意,我必须在一个方法中执行此操作,该方法应该返回已在其他位置解析的DocumentFragment实例doc。我希望doc.to_html看起来像这样:

<div class="wrapper"><h1>Three's Company</h1><p>A love triangle.</p></div>

感谢您的提示!

1 个答案:

答案 0 :(得分:0)

这是我发现的:

require 'nokogiri'

string = "<h1>Three's Company</h1><p>A love triangle.</p>"
doc = Nokogiri::HTML::DocumentFragment.parse "<div class='foo'>"
doc.at(".//div").inner_html = string 
puts doc.to_html

输出:

<div class="foo">
  <h1>Three's Company</h1>
  <p>A love triangle.</p>
</div>