2017-02-02 17 views
-1

私は<div>要素をクラス名で検索していて、他の<div>要素の隣に追加したいと考えています。次のコードは、doc1.searchを使用して取得したデータを書き込んでいません。Ruby - nokogiriを使って書くことができません

require 'nokogiri' 

doc1 = Nokogiri::HTML(File.open("overview.html")) 
affixButtons = doc1.search('div.margin-0-top-lg.margin-10-bottom-lg.text-center') 
doc1.at('div.leftnav-btn').add_next_sibling(affixButtons) 

誰かが私に欠けているものを提案できますか?

+0

私はあなたの正確なコードを実行し、それは私のために素晴らしい仕事をした..あなたは固執してどこで精巧にできますか?私はdivの部分をコードの先頭から 'leftnav-btn' divの後に移動させました。 –

+0

CSSセレクタが正しい要素を選択していますか?あなたはputs(affixButtons)のようなものを使ってそれらを印刷することができます。 –

+0

@ Z-Boneこのコードoverview.htmlを実行した後、ページは変更されません。私は変更を見ることができません。 –

答えて

0

あなたはあなたの結果のHTMLをファイルに保存していない、あなたのようにそれを行うことができますだから:

File.open("result.html", "w"){|f| f.write(doc1.to_html)} 
+0

'File.write(" result.html "、doc1.to_html)'を使って簡単に書くことができます。 –

2

あなただけの、次のように使用File.openをファイルに編集したデータを書き込みたい場合はあなたのコードは、うまく動作します:

require 'nokogiri' 

doc1 = Nokogiri::HTML(File.open("overview.html")) 
affixButtons = doc1.search('div.margin-0-top-lg.margin-10-bottom-lg.text-center') 
doc1.at('div.leftnav-btn').add_next_sibling(affixButtons) 

File.open('output.html', 'w') {|f| f.write(doc1.to_html)} 
+0

'File.write( 'output.html'、doc1.to_html)'を使って簡単に書くことができます。 –

関連する問題