如何在一个跨度中包装 Nokogiri 节点集 [英] How to wrap Nokogiri nodeset in ONE span

查看:44
本文介绍了如何在一个跨度中包装 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆