From: ga rg Date: 2008-08-07T03:34:38+09:00 Subject: Re: Hpricot: match inner_text then return parent Thanks for Ryan52 on IRC. It ended up being simpler than I thought: For input file:
abcd efgh ijkl
mnop qrst uvwx
The following with parse and then find the element and then return the parent: require 'rubygems' require 'hpricot' doc = open("test.html") { |f| Hpricot(f)} result = (doc/"tr").search("a[text()*='uvwx']").first.parent.parent puts result ga rg wrote: > Hello, > > Here is sample HTML: > >
> > > > > > > > > > > > >
abcdefghijkl
mnopqrstuvwx
> > I have a requirement that I need to match for example the inner_text > "qrst". If I find it, then I want to grab the immediate parent. So for > example, I want qrst, if a a.inner_text == qrst then grab parent and the > result I want is: > > > mnop > qrst > uvwx > > > > My very wrong attempt: > > > (doc/"html//body//form//table//tbody//tr//td").each do |row| > > result = row.search("a").select {|ele| > if ele.inner_text.to_s == mac_addr > puts "I'm in" > parent = ele.nodes_at(-1) > puts parent > end > } > > > end > > I can't seem to grab just one selection let alone grab the parent :( > > Thank you -- Posted via http://www.ruby-forum.com/.