hpricot:An Hpricot Showcase:Hpricot Challenge:Selecting only Immediate Children

まんま

require "hpricot"

X =<<EOS
<ul>
  <ul>
    <li>A</li>
  </ul>
  <li>B</li>
  <li>C</li>
</ul>
EOS

doc = Hpricot(X)
p doc.search("li")
p doc.search("./li")
p doc.search("/li") # => A, B
p doc.search(">li") # => C

で、

#<Hpricot::Elements[{elem <li> "A" </li>}, {elem <li> "B" </li>}, {elem <li> "C" </li>}]>
#<Hpricot::Elements[{elem <ul> "\n  " {elem <ul> "\n    " {elem <li> "A" </li>} "\n  " </ul>} "\n  " {elem <li> "B" </li>} "\n  " {elem <li> "C" </li>} "\n" </ul>}, "\n  ", {elem <ul> "\n    " {elem <li> "A" </li>} "\n  " </ul>}, "\n    ", {elem <li> "A" </li>}, "A", "\n  ", "\n  ", {elem <li> "B" </li>}, "B", "\n  ", {elem <li> "C" </li>}, "C", "\n", "\n"]>
#<Hpricot::Elements[]>