5

私はNokogiri::XML::Element次のようなものを持っています:

<div class="berg">This is some text!</div>

私がやりたいことは、div (のこぎり要素) からテキストを抽出し、テキストを新しいタグでラップして、次のようにすることです。

<div class="berg"><span>This is some text!</span></div>

のこぎり.wrap関数は、新しいタグでテキスト コンテンツをラップするのではなく、タグをラップするようですが、タグ間のコンテンツをどのようにラップするのか疑問に思っていました。

4

2 に答える 2

6

inner_htmldiv 要素のを設定できます。これが実際の例です:

html = '<div class="berg">This is some text!</div>'
doc = Nokogiri::HTML.fragment(html)

berg = doc.at('div.berg')    # Or xpath, or whatever method you choose

# Wrap the text in <span>
berg.inner_html = "<span>#{berg.text}</span>"

puts doc  #=> <div class="berg"><span>This is some text!</span></div>

重要な部分は、要素をinner_html追加し、その<span>中に既存のテキスト要素を配置するの使用です。

于 2013-05-10T10:13:58.593 に答える
3

あなたがするだろう:

doc.search('div.berg text()').wrap('<span>')
于 2013-05-10T12:37:48.640 に答える