[#45240] ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました — hayashi <36hayashi@...>

林と申します。

9 messages 2008/07/18

[#45267] [ANN] Ruby 1.9.0-3リリース — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

16 messages 2008/07/25

[ruby-list:45287] Hpricotでの疑問点(inner_html)

From: Maehara Masahide (前原正英) <maehrm@...>
Date: 2008-07-31 06:39:29 UTC
List: ruby-list #45287
前原と申します。

Hpricotを利用した際,疑問点が出てきましたので,相談させてください。

以下を実行した際,「Ruby home page」と出力されることを期待していたので
すが,画面には,「ruby home page」と表示されます。
-------------------------------------
require 'rubygems'
require 'hpricot'

doc = Hpricot('<a href="http://ruby-lang.org/">ruby home page</a>')
(doc/:a).each do |ele|
  ele.inner_html.gsub!(/ruby/, "Ruby")
  p ele.inner_html
end
-------------------------------------

何故だろうと思い、hpricot-0.6/lib/hpricot/elements.rbを見てみたところ,
inner_htmlメソッドがあり,そこでは,
        map { |x| x.inner_html }.join
というような配列に対する処理をやっているので,gsub!できないんだなと理
解したつもりなのですが,このinner_htmlは,Elements#inner_htmlです。

以下のように,(doc/:a)は,Hpricot::Elementsなので,(doc/:a)に対して
inner_htmlメソッドを呼び出して実行できるのは納得できるのですが,
p (doc/:a).class        #=> Hpricot::Elements
p (doc/:a).inner_html   #=> "ruby home page"

以下のように,eleは,Hpricot::Elemなので,ele.inner_htmlが実行できるの
が不思議な感じがします。
  p ele.class           #=> Hpricot::Elem
  p ele.inner_html
 
アドバイスをいただければ幸いです。
--
宮崎県立佐土原高等学校(情報技術科)
前原 正英 <maehrm@miyazaki-c.ed.jp>
http://www.miyazaki-c.ed.jp/sadowara-th/





In This Thread

Prev Next