如何在一个跨度中包装 Nokogiri 节点集 [英] How to wrap Nokogiri nodeset in ONE span
本文介绍了如何在一个跨度中包装 Nokogiri 节点集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我的目标是在一个跨度内包装初始段落之后的所有段落.我试图弄清楚如何在单个跨度内包装节点集,而 .wrap() 将每个节点包装在自己的跨度中.如所愿:
So my goal is to wrap all paragraphs after the initial paragraph within a span. I'm trying to figure out how to wrap a nodeset within a single span and .wrap() wraps each node in its own span. As in want:
<p>First</p>
<p>Second</p>
<p>Third</p>
成为:
<p>First</p>
<span>
<p>Second</p>
<p>Third</p>
</span>
有帮助的示例代码吗?谢谢!
Any sample code to help? Thanks!
推荐答案
我会这样做:
require 'nokogiri'
doc = Nokogiri::HTML::DocumentFragment.parse(<<-html)
<p>First</p>
<p>Second</p>
<p>Third</p>
html
nodeset = doc.css("p")
new_node = Nokogiri::XML::Node.new('span',doc)
new_node << nodeset[1..-1]
nodeset.first.after(new_node)
puts doc.to_html
# >> <p>First</p><span><p>Second</p>
# >> <p>Third</p></span>
# >>
这篇关于如何在一个跨度中包装 Nokogiri 节点集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文