めも

def src
<
  
    false
  
  
  inText

EOS
end

def parent_recusive(node)
  return unless node.parent
  return unless node.parent.name
  "#{parent_recusive(node.parent)}/#{node.parent.name}"
end

require 'rexml/document'
doc = REXML::Document.new src
paths = []
doc.each_recursive{ |e|
  element_path ="#{parent_recusive(e)}/#{e.name}".sub("/", '')
  if e.text 
    if e.text.strip.size != 0
      paths << "#{element_path}.text()"
    end
  end
  e.attributes.keys.each{ |att| 
    paths << "#{element_path}[@#{att}]"
  }
}

puts paths.uniq.sort