How does Hpricot ... inner_text work?


require ‘hpricot’
hdoc = Hpricot(‘nopeb xml’)

nope p hdoc.inner_text

nope p hdoc.root.inner_text

nope p hdoc.children.first.inner_text

p hdoc.get_elements_by_tag_name # <Hpricot::Elements[
p hdoc.get_elements_by_tag_name.size # 3
p hdoc.get_elements_by_tag_name.inner_text # NoMethodError

The documentation for inner_text implies it occupies the

This experiment uses get_elements_by_tag_name to fetch all descendent
elements. Then the inner_text method vanishes.

How do we get a traversal of all derived nodes’ text? Working code
preferred! (I have tried many more variations than those…)

I’m using libhpricot-ruby1.8 with Ubuntu…

I’m using libhpricot-ruby1.8 with Ubuntu…

When in doubt, blame Debian’s clumsy Ruby packaging. The out-of-the box
Hpricot was 4.1 (with notorious bugs in the search, etc.).

Upgrading to this one provides the native inner_text: