hpricot:An Hpricot Showcase:Hpricot Challenge:Excepting the First

まんま

require "hpricot"

X =<<EOS
<body>
  <div class="test">one</div>
  <div class="test">two</div>
  <div class="test">three</div> 
</body>
EOS

doc = Hpricot(X)
p (doc/"div.test:first-child)")
p (doc/"div.test:not(:first-child)")

(doc/"div.test:not(:first-child)").remove
p doc

で、

/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
        from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
        from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
        from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
#<Hpricot::Elements[{elem <div class="test"> "one" </div>}, "one"]>
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
        from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
        from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
	from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
#<Hpricot::Elements[{elem <div class="test"> "two" </div>}, {elem <div class="test"> "three" </div>}]>
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
	from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
	from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:417: warning: multiple values for a block parameter (2 for 1)
	from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/elements.rb:306
#<Hpricot::Doc {elem <body> "\n  " {elem <div class="test"> "one" </div>} "\n  " "\n  " " \n" </body>} "\n">


「-W0」をつけて実行すると、

#<Hpricot::Elements[{elem <div class="test"> "one" </div>}, "one"]>
#<Hpricot::Elements[{elem <div class="test"> "two" </div>}, {elem <div class="test"> "three" </div>}]>
#<Hpricot::Doc {elem <body> "\n  " {elem <div class="test"> "one" </div>} "\n  " "\n  " " \n" </body>} "\n">