2017-05-17 25 views
-1

NokogiriをRails 5で使用しています。テーブル行から "th"要素または "td"要素を選択するにはどうすればよいですか?私の目標は、行の中のすべてのテキストを取得することです(もっと一般的でエレガントなソリューションがあれば、私はすべてです)。ここでは、気づいているかもしれませんが、私はテーブル行からthまたはtdを選択するにはどうすればよいですか?

 text_all_rows = all_rows.map do |row| 
     row_values = row.css('td | th').map{|str| str.text } 
            .map{|str| str.gsub(/[[:space:]]+/, ' ').gsub(/\A\p{Space}+|\p{Space}+\z/, '') }.join("\t") 
     [*row_values] 
     end 

を持っているものだ「tdは|目は」「目」や行から「TD」要素を選択するための有効な構文ではありません。

+0

"[MCVE]" をお読みください。このような質問をするときは、問題を示す最小限の入力(HTML)を提供する必要があります。それがなければ、あなたを助けるだけのインプットを発明しなければなりません。それは時間を無駄にし、おそらく私たちの答えに揺らぎをもたらします。それをしないで、代わりに私たちがあなたを助けるのを助けてください。 –

答えて

0

は、複数のノードを選択するには,(カンマ)を使用します。

row_values = row.css('td, th').map{|str| str.text } 
+0

'map(&:text)'はより簡潔です。 –