hpricot:Hpricot::Traverse#nodes_at
>> require "hpricot" => true >> doc = Hpricot('<p>foo1</p><p>foo2</p><p>foo3</p><p>foo4</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>} {elem <p> "foo2" </p>} {elem <p> "foo3" </p>} {elem <p> "foo4" </p>}> >> doc.at('p').nodes_at(0) [0] => #<Hpricot::Elements[{elem <p> "foo1" </p>}]> >> doc.at('p').nodes_at(1) [1] => #<Hpricot::Elements[{elem <p> "foo2" </p>}]> >> doc.at('p').nodes_at(0..1) [0..1] => #<Hpricot::Elements[{elem <p> "foo1" </p>}, {elem <p> "foo2" </p>}]> >> doc.at('p').nodes_at(0, 2..3) [0, 2..3] => #<Hpricot::Elements[{elem <p> "foo1" </p>}, {elem <p> "foo3" </p>}, {elem <p> "foo4" </p>}]> >> doc.at('p').nodes_at(-1) [-1] => #<Hpricot::Elements[]> >> doc.at('p').nodes_at(-2..-1) [-2..-1] => #<Hpricot::Elements[]>