Nokogiri bug?

A

Alex Stahl

Hi Folks - Having some trouble w/ Nokogiri & its handling of xpaths and
nodesets, wondering if anyone here knows about possible existing issues.
(Apologies if this is a bit off-topic, but I am working in Ruby...)

So I'm trying to access a form's action URL so that I can construct my
own query string to GET via mechanize. I've tested just about every
possible xpath to get to the form's action property, and Nokogiri is
behaving as if it doesn't exist.

What I've discovered is that, once I hit a particular div tag, which
happens to be the parent node of the form, Nokogiri doesn't see any of
the div's children.

The page has HTML to this effect:

<div id="page-content" style="position: relative;">
<div id="summary-section" class="summary" style="margin-top: 10px;">
<div id="app-50331" class="app">
<form action="/friend/apps/addFacebookApp.do">


Note the form doesn't have an ID or class by which to directly reference
it. Trying to access it like so:

sublnk = page.xpath("//div[@id='app-#{code}']")


If I call children() on that, it's empty. But the parent of this node
works fine, and Nokogiri constructs its children properly, including
containing the form as a child of "app-#{code}":

sublnk =
page.xpath("//div[@id='page-content']/div[@id='summary-section']").children


Additionally, accessing the form directly via its index won't work
either. It's the second form on the page, so I've tried:

sublnk = page.xpath("//form[2]/@action")

...and still get nothing. It's as if this node just doesn't exist to
Nokogiri, even though it clearly does when it's a child. So am I doing
something wrong? How come //div[@id='app-#{code}] doesn't have any
children? Is there a bug in Nokogiri which prevents it from accessing
the form node? Why won't any xpath to the form work?!? Please help me
stop banging my head on my desk.

Thanks!

-Alex
 
M

Mike Dalessio

[Note: parts of this message were removed to make it a legal post.]

Hi,

Hi Folks - Having some trouble w/ Nokogiri & its handling of xpaths and
nodesets, wondering if anyone here knows about possible existing issues.
(Apologies if this is a bit off-topic, but I am working in Ruby...)

A better place to discuss Nokogiri-specific questions like this is probably
the nokogiri-talk mailing list, which you can find more about here:

http://groups.google.com/group/nokogiri-talk

So I'm trying to access a form's action URL so that I can construct my
own query string to GET via mechanize. I've tested just about every
possible xpath to get to the form's action property, and Nokogiri is
behaving as if it doesn't exist.

When you email the nokogiri-talk list, please make sure you include the
entire HTML document you're dealing with (e.g., as a gist or pastie), so
that someone can first reproduce your issue and then diagnose it or give you
some advice.

Cheers,
-mike
 
A

Alex Stahl

Thanks, I thought there might be a more appropriate forum.

But fortunately I won't have to post there - figured it out.

To find & verify the xpaths, I'd been using firebug. Then looking in
the code I noted that firebug's model wasn't matching the actual HTML,
which in turn didn't match what nokogiri saw - they each showed
something different (bug elsewhere?). Once I figured out what HTML
nokogiri was parsing, it was easy.

Thanks,
Alex
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,154
Members
46,702
Latest member
LukasConde

Latest Threads

Top