そこで、nokogiri を使用して html ページを解析しました。
包みたいリンクの各出現の周りのタグ
.wrap()
正しく動作していないようです。
puts doc.xpath("//a").wrap("<b></b>");
単純な通常の変更されていない html を返します。
これは動作方法の欠陥wrap
です。ソースは次のとおりです。
# File lib/nokogiri/xml/node_set.rb, line 212
def wrap(html, &blk)
each do |j|
new_parent = Nokogiri.make(html, &blk)
j.parent.add_child(new_parent)
new_parent.add_child(j)
end
self
end
ご覧のとおり、 に置き換えるのではなく、j
の兄弟の最後にnew_parent
追加 します。次のようにやりたいことができます。new_parent
j
doc.search('//a').each do |j|
new_parent = Nokogiri::XML::Node.new('b',doc)
j.replace new_parent
new_parent << j
end